В подсостоянии angularJs stateprovider не загружаются контроллер и шаблон
Я создал это небольшое приложение, в котором у меня есть следующие состояния:
restricted.route.js
$stateProvider.state('restricted', {
url: '/restricted',
templateUrl: 'app/restricted/restricted.html',
abstract: true
});
pages.route.js
$stateProvider.state('restricted.pages', {
url: '/pages',
templateUrl: 'app/restricted/pages/pages.html',
controller: 'pagesController',
controllerAs: 'vmPages'
});
detail.route.js
$stateProvider.state('restricted.pages.detail', {
url: '/:id',
controller: 'pageDetailController',
controllerAs: 'vmDetail',
templateUrl: 'app/restricted/pages/detail/detail.html'
});
app.run.js
$urlRouterProvider.otherwise('/restricted/dashboard');
Когда я загружаю URL #/ limited/pages все работает нормально. Контроллер загружен и вид показан. Когда я загружаю URL #/ disabled/pages/1, загружается и выполняется контроллер и представление из состояния "limited.pages". Состояние четко распознано, поскольку $ urlRouterProvider.other иначе не выполняется.
У кого-нибудь есть идеи, что я здесь делаю не так?
Спасибо!
2 ответа
Намеренно ли иметь детали в качестве подсостояния состояния страниц (списка?)? Если это так, вам нужно разместить <div ui-view></div>
в шаблон с именем app/restricted/pages/pages.html
,
Если это не было вашим намерением, я рекомендую переименовать состояние детали в нечто вроде restricted.pages_detail
поскольку каждая точка вводит вложенный уровень в определения состояния.
Я думаю, что ваша проблема заключается в HTML, вложенное состояние должно быть загружено в тег пользовательского интерфейса на родительском элементе.