我已经阅读了angularjs-ui-router的文档,一堆示例和一堆stackoverflow帖子,但我似乎无法弄清楚如何做这个非常具体的事情。
问题是有一组命名视图,只想更新其中一个而不重新加载/重置其他命名视图。我已经尝试过它们之间的某种状态继承,但它有点没有意义,因为它们都不应该成为另一个的祖先。
假设我有一个嵌套的未命名的ui视图,其中包含3个命名视图,如下所示:
<div>
<div ui-view="viewA"></div>
<div ui-view="viewB"></div>
<div ui-view="viewC"></div>
<a ui-sref="mystate.stateA">Activate A</a>
<a ui-sref="mystate.stateB">Activate B</a>
<a ui-sref="mystate.stateC">Activate C</a>
</div>
然后,在我的州提供者中,我有以下配置:
.state('mystate', {
url: "/mystate",
views : {
"": { templateUrl: "/app/views/myview.html", controller: "myController" },
"viewA": { template: "Nothing" },
"viewB": { template: "Nothing" },
"viewC": { template: "Nothing" }
}
})
.state('mystate.stateA', {
url: "/stateA",
views : {
"viewA": { template: "A" }
}
})
.state('mystate.stateB', {
url: "/stateB",
views : {
"viewB": { template: "B" }
}
})
.state('mystate.stateC', {
url: "/stateC",
views : {
"viewC": { template: "C" }
}
})
现在,当我点击链接“激活A”时,它在viewA中显示字符串“A”而不是“Nothing”,到目前为止一直很好。但当我点击链接“激活B”时,viewA“重置”到祖先状态的“Nothing”,而viewB显示“B”。
我想知道的是,在这种情况下是否可以阻止viewA重置为“Nothing”?