私のコントローラには、フォームの送信時に呼び出されるcreateListing()関数があります。 createListing()は、newListingServiceサービス内からsaveListing()関数を呼び出します。これによりデータベースへの$ http投稿要求が行われます。次に、コントローラにupdateListings()関数を使用して新しく作成されたリストを含めるために、ページに表示されたリストを更新する必要があります。私が抱えている問題は、createListing()でsaveListing()を呼び出す前にupdateListings()関数が呼び出されていることです。投稿のリクエストが完了した後にのみupdateListings()が呼び出されるようにするにはどうすればよいですか?サービスからの非同期呼び出しが完了したときにのみ関数を呼び出す方法はありますか?
コントローラー:
...
$scope.listings = {};
$scope.updateListings = function(){
$http.get('/listings')
.then(function(res){
$scope.listings = res.data;
});
};
$scope.createListing = function(listingData){
newListingService.saveListing(listingData);
$scope.updateListings();
};
newListingService:
function newListingService($http){
this.saveListing = function(listingData){
$http({
method : 'POST',
url : '/listings',
data : listingData
})
.success(function(data) {
});
}
}
完全に働いた、ありがとう! – useyourbrian