2016-07-12 312 views
0

私のコードでは、この関数をloadAllOrders();と呼んでいます。これは

$scope.loadAllOrders = function() { 
    orderSvc.GetAllOrders().then(function(response) { 
     // Does a bunch of stuff here 
    }); 
} 

GetAllOrders()は、データベースからデータを取得するために$httpを使用して、その実装のスケルトンです。 loadAllOrders()はすべてのデータをフォーマットし、ng-repeatに挿入します。

loadAllOrders()が終了したら関数を呼び出せます。たとえば、

$scope.loadAllOrders().then(
    //I am doing something 
); 

これはどのように達成できますか?

+0

これを達成するための「約束」 –

答えて

2

あなたはこのことができますあなたのコントローラへの依存やサービス

$scope.loadAllOrders = function() { 
var deferred = $q.defer(); 
    orderSvc.GetAllOrders().then(function(response) { 
     // Does a bunch of stuff here 
deferred.resolve(response); 
    }); 
return deferred.promise; 
} 

https://docs.angularjs.org/api/ng/service/$q

希望として$ qをサービスを注入する必要があり、角JS

にloadAllOrders用のカスタム約束を書くことができます

+0

どうすれば実行できますか約束の後の関数が返されますか? –

+0

$ scope.loadAllOrders()。then(function(result){ });あなたの質問に書いたように同じ – JEMI

+1

約束のアンチパターンに注意してください。約束を返すために 'orderSvc.GetAllOrders()'を返すだけです。 –

関連する問題