ui-router Есть ли способ перезагрузить определенное состояние без перезагрузки всей страницы?

Допустим, у меня есть следующие три состояния: root, accounts и accounts.edit.

Учетные записи будут просто списком имен учетных записей (для упражнения), а accounts.edit будет простым вводом с кнопкой отправки, которая обновляет имя учетной записи. Они оба являются дочерними элементами состояния root.

Я хочу, чтобы имена учетных записей перезагружались после сохранения выбранной учетной записи, и с этой целью я пытался использовать $state.go('accounts', {}, {reload: true});, и хотя он перезагружает список учетных записей, он также перезагружает всю страницу (в этом случае остальная часть страницы - это просто root состояние с простым управлением навигацией).

Есть ли способ перезагрузить только состояние accounts без перезагрузки root?


person Bogdan    schedule 21.03.2014    source источник


Ответы (1)


Это должно было бы быть иерархическим, то есть:

$stateProvider
    .state('root', { ... })
    .state('root.accounts', {...})
    .state('root.accounts.edit', {...});

Хотя, если навигационный материал никогда не изменится, вы можете полностью переместить его из представлений состояния, то есть:

...
<body ng-app="MyApp">
   <!-- nav goes here -->
   <div ui-view></div>
</body>
person Master Morality    schedule 21.03.2014
comment
Элементы навигации изменятся, так как будут скрыты элементы, к которым у вас нет доступа. В любом случае, я фактически изменил способ работы своей программы, чтобы она больше не требовала индивидуального обновления состояний. Я использую службу для списка своих учетных записей и просто обновляю службу после смены учетной записи. Вопрос все еще стоит. - person Bogdan; 21.03.2014
comment
Я должен был быть более ясным, когда я сказал, что не меняется, я имел в виду с точки зрения того, что это не заменяется чем-то другим. У меня есть аналогичная настройка, где я показываю/скрываю кнопки входа и тире. - person Master Morality; 21.03.2014
comment
Можете ли вы предоставить рабочий пример того, как перезагрузить контроллер root.accounts без инициализации контроллера root? - person spyder; 06.06.2014