На самом деле не знаю, что здесь происходит, я делал это миллионы раз раньше.
Следующая конфигурация приводит к выполнению корневого состояния , даже когда маршрут совпадает сподсостояние.
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/
Я активировал родительское состояние, и это правильно.Журналы консоли родительский контроллер , и на экране отображается ссылка test .
Случай 2 GET /apps/neo/a/1
Я все еще получаюродительское состояние активировано, что странно.Журналы консоли родительский контроллер и представление показывает ссылку test .
Если я перейду к следующему, в основном удаляя иерархию состояний, все будет работать, как и ожидалось.
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 GET /apps/neo/
Я активировал состояние apps-neo
, что является правильным.Журналы консоли родительский контроллер .
Случай 2 GET /apps/neo/a/1
Я активировал состояние apps-neo-a
, что является правильным.Журналы консоли 1 и вид показывает a .
Есть идеи?