我想为我的 angularjs 资源的所有方法实现一个通用错误回调,它将记录“默认错误处理程序日志”。
我的资源:
currentNgModule.factory('StatusesResource', function($resource, $timeout){
var StatusesResource = $resource(get_gui_url_param('company.employee.statuses', true), null, {
get: {method: 'GET', isArray: true, headers: getGenericHttpHeaders()},
create: {method: 'POST', isArray: false, headers: getGenericHttpHeaders()},
$update: {
method: 'PATCH',
isArray: false,
headers: getGenericHttpHeaders(),
url: get_gui_url_param('company.employee.status.pk', true)
},
delete: {
method: 'DELETE',
isArray: false,
headers: getGenericHttpHeaders(),
url: get_gui_url_param('company.employee.status.pk', true)
}
}, false);
return StatusesResource;
});
例如执行结果:
$log.debug("Calling Resource Get")
StatusesResource.get({employee_pk: pk},
function(){$log.debug("success")},
function(){$log.debug("Get error")}
);
$log.debug("Calling Resource Delete")
StatusesResource.get({pk: pk},
function(){$log.debug("success")},
function(){$log.debug("Delete error")}
);
我想获取以下日志:
Calling Resource Get
Default Error Handler Log
Get error
Calling Resource Delete
Default Error Handler Log
Delete error
热衷于为 ng-resource 实现这个默认(初始、通用)回调(成功、错误)?
最佳答案
你可以这样做using the interceptor
property of the resource action definition 。请参阅the $resource docs了解更多。
所以:
function resourceResponseErrorHandler(response) {
$log.error("Resource error");
}
currentNgModule.factory('StatusesResource', function($resource, $timeout){
var StatusesResource = $resource(get_gui_url_param('company.employee.statuses', true), null, {
get: {method: 'GET', isArray: true, headers: getGenericHttpHeaders(), interceptor: { resonseError: resourceResponseErrorHandler }},
create: {method: 'POST', isArray: false, headers: getGenericHttpHeaders(), interceptor: { resonseError: resourceResponseErrorHandler }},
$update: {
method: 'PATCH',
isArray: false,
headers: getGenericHttpHeaders(),
url: get_gui_url_param('company.employee.status.pk', true),
interceptor: { resonseError: resourceResponseErrorHandler }
},
delete: {
method: 'DELETE',
isArray: false,
headers: getGenericHttpHeaders(),
url: get_gui_url_param('company.employee.status.pk', true),
interceptor: { resonseError: resourceResponseErrorHandler }
}
}, false);
return StatusesResource;
});
关于javascript - AngularJS $resource 的默认(通用)错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25421032/