我在ui-router中有一個'並行狀態'設置,允許url和狀態確定DOM的兩個不同部分(左側和右側)。右邊總是'酒吧',左邊是巴茲和蝙蝠。有一個抽象的父狀態,它決定了通過project_id顯示哪個項目。更改父狀態/ project_id將更改baz,bat和bar的內容。代碼在下面,並且工作。ui-router和angularjs中的並行狀態 - 防止重新加載
問題是,當狀態從project.baz - > project.bat轉換時,'bar'視圖重新初始化(例如指令重新運行鏈接函數),這會導致一些醜陋。
問題:當狀態從project.baz - > project.bat改變時,是否有辦法阻止'bar'視圖被重新初始化?當然,它應該在它的父狀態(即project_id)改變時重新初始化。
感謝
$stateProvider
.state('project', {
abstract: true,
url: "/qux/:project_id",
views: {
"left": {
templateUrl: 'foo.html',
controller: 'FooController'
},
"right": {
templateUrl: 'bar.html',
controller: 'BarController'
}
}
})
.state('project.baz', {
url: "/baz",
views: {
"": {
templateUrl: 'baz.html',
controller: 'BazController'
},
"right": {
templateUrl: 'bar.html',
controller: 'BarController',
}
}
})
.state('project.bat', {
url: '/bat',
views: {
"": {
templateUrl: 'bat.html',
controller: 'BatController'
},
"right": {
templateUrl: 'bar.html',
controller: 'BarController'
}
}
})
看看ui-router-extras提供的粘性狀態(並行狀態)和深度狀態重定向功能http://christopherthielen.github.io/ui-router-extras/#/home – Martin 2014-08-28 19:57:51
謝謝。看起來像粘性狀態是我需要的。當我下一次檢修代碼時,我會給出一個結論。現在,爲了穩定的緣故,我不會。你知道目前ui-router-extras有多穩定嗎? – tom 2014-08-28 22:29:44