Service.js
myService.serviceName = function (userId) {
return $http({
method: 'POST',
url: '/someUrl'
}).then(function successCallback(response) {
return response.data;
}, function errorCallback(response) {
console.log('Service errorCallback');
console.log(response);
});
};
Controller.js
myService.ControllerName(data.id)
.then(function successCallback(data) {
//do processing here
}, function errorCallback(response) {
toaster.pop({
type: 'error',
title: 'Display Error Message!'
});
});
在投放使用时,我们会在控制台viz -1
,-2
中收到错误状态代码,并根据该代码向用户显示自定义错误消息。
答案 0 :(得分:1)
我想到的第一件事就是接受来自Controller的回调。
myService.serviceName = function (userId) {
return $http({
method: 'POST',
url: '/someUrl'
})
};
在你的控制器中:
myService.serviceName(123).then(function(response) {
// Do the processing.
}, function(error) {
// Check the error and change the UI accordingly.
});
如果您需要在服务中进行处理,您可能需要使用$ q服务。在这种情况下,您需要将其注入您的服务。
myService.serviceName = function (userId) {
var defer = $q.defer();
$http({
method: 'POST',
url: '/someUrl'
}).then(function (response) {
// Do the processing.
defer.resolve(response);
}).catch(function (error) {
defer.reject(error);
});
return defer.promise;
};
在您的控制器中:
myService.serviceName(123).then(function(response) {
// Indicate that everything went OK.
}, function(error) {
// Check the error and change the UI accordingly.
});
答案 1 :(得分:0)
您可以添加向服务添加回调的功能。
这样控制器可以将自己的回调方法注册到服务。当错误发生时,它将调用所述回调方法。通知控制器发生的错误和所需的消息。