簡體   English   中英

UI-Router:父狀態和子狀態的順序解析

[英]UI-Router: sequential resolve of parent and child states

我有兩個抽象狀態parentparent.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM