[英]UI-Router: sequential resolve of parent and child states
我有兩個抽象狀態parent
和parent.child
,以及一個可激活狀態parent.child.grand
。
我想parent
要承諾解決之前parent.child.grand
獲取其做出決議執行。 為什么? 因為parent.grand.child
需要來自parent
解析的ajax請求的某些數據。
這是一個要點
是否可以在不使用控制器的情況下順序將父級的承諾鏈接到子狀態?
( parent
解析開始 - >完成ajax請求 - >解析promise - > parent.child.grand
解析start - >完成ajax請求 - >解析promise
我已經看到了一些答案,但如果沒有一個例子,它仍然不完全清楚。 文檔說:
如果要在實例化子項之前等待解析promise,則必須將解析鍵注入子狀態。
這是一個例子:
$stateProvider.state('parent', {
resolve:{
resA: function(){
return {'value': 'A'};
}
},
controller: 'parentCtrl'
})
.state('parent.child', {
resolve:{
// Adding resA as an argument here makes it so that this child state's resB resolve
// function is not run until the parent state's resA resolve function is completed.
resB: function(resA){
return {'value': resA.value + 'B'};
}
}
controller: 'childCtrl'
})
而且您不必將resA注入子控制器。
如果將auth
添加到孫子解析的依賴注入中,ui-router將在孫子解析之前解析它。
['authsrv', 'auth', function(authsrv, auth){}]
希望有道理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.