2017-04-11 92 views
0

我在我的國家有這個決心UI路由器解決依賴於其他解決

首先我得到的test到一個變量,然後我想要得到的test2變量,但爲了得到test2我不得不等待爲test再次。

有沒有更聰明的方法來做到這一點?

謝謝

resolve: { 
     one: function (test) { 
      return test.gettest().$promise.then(data => { 
       return data; 
      }); 
     }, 
     two: function (test, test2, $stateParams) { 
      return test.gettest().$promise.then(test=> { 

       return test2.gettest2(test.id, $stateParams.id).$promise.then(data => { 
        return data; 
       }); 

      }); 
     } 
    }, 

回答

2

如果你注入第一的決心變量(one)進入第二決心聲明,棱角分明的UI路由器是明智地意識到,它不會運行第二個決心聲明,直到第一個已完成。所以你會做什麼看起來像下面這樣:

resolve: { 
    one: function (test) { 
     return test.gettest().$promise.then(data => { 
      return data; 
     }); 
    }, 
    two: function (one, test2, $stateParams) { 
     //one is equal to the result of test.gettest() 
     return test2.gettest2(one.id, $stateParams.id).$promise.then(data => { 
       return data; 
      }); 

     }); 
    } 
},