在 Angular js 中真的找不到关于 http 拦截器的好文档。在处理由ng-include
i 引起的错误时,可以使用以下方法进行拦截responseError
:
app.config(function ($httpProvider) {
$httpProvider.interceptors.push('templateInterceptor');
});
// register the interceptor as a service
app.factory('templateInterceptor', function($q) {
return {
'responseError': function(rejection) {
var isTemplate = !!rejection.config.url.match(/^content/g);
if (isTemplate) {
// here we add error message, but how this message appesrs in the place of ng-include
rejection.data = '<div><template-error url="\''+ (rejection.config.url) + '\'"><strong>Error from interceptor.</strong></template-error></div>';
return rejection;
} else {
return $q.reject(rejection);
}
}
}
});
这段代码取自这个问题how to catch angular ng-include error。我不明白,拦截器是如何工作的?他们必须返回什么?如何使用rejection
传递给responseError
拦截器的参数?在属性中用于将错误消息包含到失败指令的位置rejection
,这是如何工作的?data
ng-include