我有一個經典的設置實體情況,用戶從列表中選擇一個項目,並將其顯示在列表旁邊的視圖中。Angular UI路由器:保持狀態變化的兄弟姐妹視圖
使用UI路由器實現這個功能的典型方法是擁有一個模板,該模板包含列表項的html和列表項的ui-view,項目狀態是列表狀態的子項。
我卻想的項目和列表的狀態是兄弟姐妹,而不是與他們的模板被插入到一個名爲UI的觀點:
$stateProvider.state("inbox", {
abstract: true,
url: "/inbox",
templateUrl: "inbox.html"
}).state("inbox.list", {
url: "?filter_by",
views: {
list: {
templateUrl: "inbox.list.html",
controller: "ListCtrl"
}
}
}).state("inbox.thread", {
url: "/:id?filter_by",
views: {
thread: {
templateUrl: "inbox.list.html",
controller: "ListCtrl"
}
}
})
inbox.html:
<div class="wrapper">
<div class="more wrappers">
<ul ui-view="list"></ul>
</div>
<div ui-view="thread"></div>
</div>
明顯的問題這裏是,只要你從列表中選擇一個線程,列表本身就會消失。這可以通過在「inbox.thread」狀態下複製「list」視圖配置來解決,但是每次我選擇一個新線程時,列表視圖仍然會重新加載。
我希望他們作爲兄弟國家的原因是,我可以過濾列表,因此只針對名爲ui-view的「列表」,同時保留線程視圖與任何線程被選中。
所以 - 有沒有辦法讓兄弟姐妹名爲ui-views?
你應該真的接受你得到的答案,因爲它解決了你的問題優雅! – colthreepv