gpt4 book ai didi

javascript - ngResource 的全局错误处理

转载 作者:行者123 更新时间:2023-11-27 23:49:18 26 4
gpt4 key购买 nike

我正在寻找一种方法来在一个地方处理所有基于 ngResource 的服务的网络相关错误。

From this answer我知道我可以为单个资源中的所有操作定义自定义拦截器。是否可以修改 angularjs 创建的默认操作并在那里传递自定义拦截器?

最佳答案

这是我的解决方案:

angular.module('server-error', [])
.factory('ErrorResponseInterceptor', function($rootScope, $q) {
return {
responseError: function(rejection) {
var message = null;
switch (rejection.status) {
case 0:
message = "Unknown network error when loading " + rejection.config.url;
break;
default:
message = rejection.status + " " + rejection.statusText + " when loading " + rejection.config.url;
}
$rootScope.$broadcast('event:error-serverError', message);
return $q.reject(rejection);
}
};
})
//for $http
.config(function($httpProvider) {
$httpProvider.interceptors.push('ErrorResponseInterceptor')
})
//and for ngResource actions
.config(function($resourceProvider) {
var default_actions = $resourceProvider.defaults.actions;
angular.forEach(default_actions, function(action) {
action['interceptor'] = {
responseError: 'ErrorResponseInterceptor'
}
})
})

关于javascript - ngResource 的全局错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32861343/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com