次の行を使用して、と呼ばれるファクトリを介してサーバーにデータを投稿するコントローラーがありますSendDataFactory
。
SendDataFactory.sendToWebService(dataToSend)
そして、私の工場SendDataFactory
は次のようになります。
angular
.module('az-app')
.factory('SendDataFactory', function ($http, $q) {
var SendData = {};
/**
* Sends data to server and
*/
SendData.sendToWebService = function (dataToSend) {
var url = "example.com/url-to-post";
var deferred = $q.defer();
$http.post(url, dataToSend)
//SUCCESS: this callback will be called asynchronously when the response is available
.then(function (response) {
console.log("Successful: response from submitting data to server was: " + response);
deferred.resolve({
data: data
});
},
//ERROR: called asynchronously if an error occurs or server returns response with an error status.
function (response) {
console.log("Error: response from submitting data to server was: " + response);
deferred.resolve({
data: data
});
}
);
return deferred.promise;
}
return SendData;
});
こことインターネットでいくつかの例を見てきました
$http.post().success...
でも使いたい
$http.post().then...
$http の従来の promise メソッドの success と error は非推奨になりました。代わりに、標準の then メソッドを使用してください。$httpProvider.useLegacyPromiseExtensions が false に設定されている場合、これらのメソッドは $http/legacy エラーをスローします。
私が必要なもの:
ここで、コントローラーで、成功したかどうかを確認$http.post().then...
し、成功または失敗に基づいて何かを行う必要があります。どうすればこれを達成できますか?