У меня проблема с вложенными состояниями в 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 не запускает загрузку и переход шаблона. Мы будем благодарны за любое понимание.

0
mattchue 21 Фев 2015 в 02:38

2 ответа

Лучший ответ

Моя проблема заключалась в том, что я неправильно ссылался на свои взгляды. Из-за того, как они вложены, мне нужно было использовать абсолютное имя для отображения представления. Связанная документация UI-router описывает мою проблему.

https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views#view-names---relative-vs-absolute-names

0
mattchue 24 Фев 2015 в 18:14

<ion-view /> не эквивалент <ui-view />, в Ionic Framework это просто контейнер для вставки полос верхнего / нижнего колонтитула и содержимого.

Используйте <ion-nav-view /> http://ionicframework.com/docs/api/directive/ionNavView/ и укажите по имени это вложенное представление в родительском представлении: <ion-nav-view name="main" />

1
dakna 24 Фев 2015 в 09:38