У меня есть 4 состояния, как показано ниже
$stateProvider.state('search', {
url: '/search',
controller: 'ControllerA',
template: TemplateA
}).state('results', {
url: '/searchResult/:queryString',
controller: 'ControllerA',
template: TemplateA
}).state('search.child1', {
controller: 'ControllerChild1',
template: TemplateChild1
}).state('search.child2', {
url: '/child2',
controller: 'ControllerChild2',
template: TemplateChild2
});
.controller('ControllerA' function() {
this.selectedItem = '';
});
Сводка о моих состояниях: В обоих состояниях 'search' и 'result' используются один и тот же контроллер и html.'search.child1' и 'search.child2' являются двумя дочерними состояниями поиска (это вкладка внутри страницы поиска).Когда пользователь запускает приложение по умолчанию, выбирается search.child1.
Постановка задачи:
- Когда при поиске пользователем какого-либо элемента selectedItem обновляется один изпеременная области видимости в ControllerA (внутри контроллера 'search').
- Когда пользователь переходит из состояния 'search.child1' в 'search.child2' selectedItem становится неопределенным, что находится в родительском состоянии.
Я не понимаю, почему это такпроисходит здесь, когда я перемещаюсь между дочерними состояниями, почему родительские переменные очищаются?Как предотвратить это?
Я пробовал следующие вещи
this.$state.go('search.child2', {}, { reload: 'search.child2' });
this.$state.transitionTo('search.child2', {}, { notify: false });