Действительно не могу найти хорошую документацию о перехватчиках http в Angular js. При обработке ошибок, вызванных ng-include
, я могу перехватить 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);
}
}
}
});
Этот код был взят из этого вопроса как поймать угловую ошибку ng-include . Я не понимаю, как работают перехватчики? Что они должны вернуть? Как использовать параметр rejection
, переданный перехватчику responseError
? В rejection
свойство data
используется для включения сообщения об ошибке вместо невыполненной директивы ng-include
, как это работает?