У меня два состояния:
.state('a.b', {
url: "",
views: {
"b": {
template: require('./ab.html'),
controller: ABController
}
})
.state('a.b.c', {
url: "/:someid",
views: {
"c": {
template: require('./abc.html'),
controller: ABCController
}
})
с ab.html:
<div ui-view="c"></div>
Когда я перемещаюсь из состояния ab в состояние abc, я вижу, что ABController
реконструируется, когда я перемещаюсь из состояния abc в ab, ABContoller не реконструируется.
То, чего я действительно хочу достичь, - не восстанавливать ABContoller при навигации с ab на abc или с abc на ab. Есть ли способ сделать это?
Таким образом, ответ заключается в том, что это действительно возможно, и это то, что происходит по умолчанию, потому что, как я ожидал, ui-router тщательно отслеживает, какие состояния нужно уничтожать/создавать на основе состояний from и to.
В этом случае то, что вызвало дополнительную конструкцию, состоит в том, что два из моих состояний использовали одну и ту же переменную параметра, которая заставляла ui-router рассматривать общие элементы пути состояния для разных.
В принципе, исправление включало удаление неиспользуемого/багги-атрибута "params" из определения состояния.