我有两种状态:
.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>
当我从状态a.b导航到状态a.b.c时,我看到正在重建ABController
,而当我从状态a.b.c导航到a.b时,ABContoller没有被重建。
我真正想要实现的是在从a.b导航到a.b.c或从a.b.c导航到a.b时不重建ABContoller。有没有办法做到这一点?
答案 0 :(得分:0)
所以,答案是这确实是可能的,它是默认情况下发生的,因为正如我所期待的那样,ui-router会根据from和to状态仔细跟踪需要销毁/创建的状态。
在这种情况下,触发额外构造的是我的两个状态使用相同的参数变量,这迫使ui-router将状态路径的公共元素视为不同。
基本上,修复涉及从状态定义中删除未使用/错误的“params”属性。