2017-04-11 3 views
0

ich diesen Entschluss habe in meinem Zustandui Router resolve hängt von anderen Entschlossenheit

zuerst bekomme ich die test in eine Variable, und dann will ich die test2 Variable erhalten, aber um test2 zu bekommen ich warten müssen für test wieder.

Gibt es einen klügeren Weg, dies zu tun?

Danke

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; 
       }); 

      }); 
     } 
    }, 

Antwort

2

Wenn Sie die erste resolve Variable (one) in die zweite resolve Aussage, Winkel ui Router intelligent genug, um zu erkennen, injizieren, dass es nicht die zweite resolve Anweisung, bis die erste läuft hat vervollständigt. So, was Sie tun würden, sieht ungefähr so ​​aus:

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; 
      }); 

     }); 
    } 
}, 
Verwandte Themen