Interceptors是AngularJS中的拦截器,个人感觉更像是JavaEE中的过滤器,即所有事件都依次通过过滤器,过滤器处理后向下传递,再到最终到处理程序。

最近在网上看的博客都简单举了例子,但在本人实现过程中总是实现moduerr的错误提示,下面是出错记录:

Angular version:1.4.6
不能正确实现的方式:服务实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
angular.module('app').factory('httpInters',httpInters);
httpInters.$inject = ['$q'];
function httpInters($q){
return {
responseError:function(response){
// your code here
},
requestError:function(req){
// your code here
}
}

}

angular.module('app').config(function($http,httpInters){
$httpProvider.interceptors.push(httpInters);
});

使用上边在方式发现一直不能正确注入服务模板,因此采用匿名函数的方法来做:

1
2
3
4
5
6
7
8
9
10
angular.module('app').config(function($httpProvider){
$httpProvider.interceptors.push(function($q){
return {
responseError:function(response){
// your code here
return $q.reject(response);
}
}
});
})

具体原因还没有分析,暂时先记录下来。