У меня проблема с вложенными состояниями в UI-Router. У меня есть два состояния, и при нажатии кнопки он должен перейти в другое состояние, и URL-адрес изменится, но шаблон - нет. Вот мой код для логики состояния:
$stateProvider.state('accounts', {
url: '/accounts',
views: {
'menu': {
templateUrl: 'templates/menu.html',
controller: 'MenuController'
},
'main': {
templateUrl: 'templates/accounts.html',
controller: 'AccountsController'
}
}
});
$stateProvider.state('accounts.detail', {
url: '/:accountID',
views: {
'main': {
templateUrl: 'templates/accounts.detail.html',
controller: 'AccountsDetailController'
}
}
});
И моя логика кнопок: $state.go('accounts.detail', { accountID : account.accountID});
Оба моих представления заключены в теги ui-view. Все остальные корневые состояния работают правильно (/ home, / orders), однако / accounts /: accountID не запускает загрузку и переход шаблона. Мы будем благодарны за любое понимание.
2 ответа
Моя проблема заключалась в том, что я неправильно ссылался на свои взгляды. Из-за того, как они вложены, мне нужно было использовать абсолютное имя для отображения представления. Связанная документация UI-router описывает мою проблему.
<ion-view />
не эквивалент <ui-view />
, в Ionic Framework это просто контейнер для вставки полос верхнего / нижнего колонтитула и содержимого.
Используйте <ion-nav-view />
http://ionicframework.com/docs/api/directive/ionNavView/ и укажите по имени это вложенное представление в родительском представлении: <ion-nav-view name="main" />
Похожие вопросы
Новые вопросы
angularjs
Используйте для вопросов об AngularJS (1.x), JavaScript-фреймворке с открытым исходным кодом. НЕ используйте этот тег для Angular 2 или более поздних версий; вместо этого используйте тег [angular].