В подсостоянии 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, вложенное состояние должно быть загружено в тег пользовательского интерфейса на родительском элементе.

Другие вопросы по тегам