[英]passing error message from service to controller in angularjs
Controller.js
var vm = this;
vm.admin = {};
vm.add = function () {
API.addAdmin(token, vm.admin)
.then(function (resp) {
vm.hideForm = true;
vm.showButton = true;
Notify.green(resp);
}, function (resp) {
Notify.red(resp);
});
};
API.js
function addAdmin(token, dataObj) {
return Constant.getApiUrl()
.then(function (url) {
$http({
method: 'POST',
url: url + '/client/admin',
headers: {
'Token': token
},
data: dataObj
}).then(handleResp);
function handleResp(resp) {
var responseStatus = (resp.status >= 200 && resp.status < 300) ? 'good' : 'bad';
if (responseStatus === 'good') {
console.log("Success" + resp);
return resp;
} else {
console.log("Failed" + resp);
return resp;
}
}
})
}
如果我在API中獲得成功響應,則需要將其連接至控制器中的成功函數,並且如果我在API中獲得錯誤消息,則需要其將其連接至控制器中的錯誤函數。如何評估響應我的API的狀態(成功或錯誤)。
我不想從我的控制器向API傳遞successfn,errorfn(僅當沒有其他選擇時)。
我需要從API到控制器獲取響應數據,以將其顯示在Notify消息中。
謝謝!
在使用中(在“ originalData ”中分配響應值):
angular.module('appname').service('myserviceName', function(yourExistingService){
this.myFunction= function(originalData) {
//for next line to work return promise from your addAdmin method.
var promise = yourExistingService.getResponseFromURL(originalData);
return promise;
}
});
在您的控制器中:
var promise = myserviceName.myFunction($scope.originalData);
promise.$promise.then(function() {
console.log($scope.originalData);
});
然后,您可以檢查您的“ originalData ”並根據需要編寫代碼。有關更多詳細信息,請查看此http://andyshora.com/promises-angularjs-explained-as-cartoon.html 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.