真的不知道这里发生了什么,我以前做过很多次。
以下配置导致
根态
即使路由与子状态匹配也要执行。
module.config(['$stateProvider', function($stateProvider) {
$stateProvider.state('apps-neo',{
url: '/apps/neo/',
template: '<a ui-sref="apps-neo.a({id: 1})">test</a>',
controller: function(){
console.log('parent controller')
},
navbar: 'apps'
}).state('apps-neo.a',{
url: 'a/:id',
template: 'a',
controller: function($stateParams){
console.log($stateParams.id)
},
navbar: 'apps'
});
}
案例1
GET /apps/neo/
我激活了父状态,这是正确的。控制台日志
父控制器
视图显示
测试
链接。
案例2
GET /apps/neo/a/1
我仍然激活了父状态,这很奇怪。控制台日志
父控制器
视图显示
测试
链接。
如果我更改为以下内容,基本上删除状态层次结构,则一切都按预期工作。
module.config(['$stateProvider', function($stateProvider) {
$stateProvider.state('apps-neo',{
url: '/apps/neo/',
template: '<a ui-sref="apps-neo.a({id: 1})">test</a>',
controller: function(){
console.log('parent controller')
},
navbar: 'apps'
}).state('apps-neo-a',{ // <------ do not make this state nest from previous
url: '/apps/neo/a/:id',
template: 'a',
controller: function($stateParams){
console.log($stateParams.id)
},
navbar: 'apps'
});
}
案例1
获取/应用程序/近地天体/
我得到了
apps-neo
状态激活,这是正确的。控制台日志
父控制器
.
案例2
获取/apps/neo/a/1
我得到了
apps-neo-a
状态激活,这是正确的。控制台日志
一
视图显示
一
.
有什么想法吗?