У меня есть перехватчик:
angular.module('mobileDashboardApp')
.factory('HTTPInterceptor', function ($rootScope, $q, HTTPErrors) {
return {
responseError: function (response) {
$rootScope.$broadcast({
500: HTTPErrors.serverError,
503: HTTPErrors.serviceError
}[response.status], response);
return $q.reject(response);
}
};
})
Здесь определяются константы:
angular.module('mobileDashboardApp')
.constant('HTTPErrors', {
serverError: 'internal-server-error',
serviceError: 'service-error'
})
Как я могу запустить $ rootScope. $ Для выполнения console.log всякий раз, когда есть ошибка 500?
В моей конфигурации я добавил перехватчик, используя:
.config(function ($httpProvider, $routeProvider) {
$httpProvider.interceptors.push([
'$injector',
function ($injector) {
return $injector.get('HTTPInterceptor');
}
]);
Из того, что я понимаю, вы передаете HTTPErrors.serverError
строки HTTPErrors.serverError
на статус 500 и HTTPErrors.serviceError
строки HTTPErrors.serviceError
на статус 503. Таким образом, вы можете поймать их, указав этот код на любом контроллере, который вы хотите подписаться на эти события
$rootScope.$on(HTTPErrors.serverError, function(event, args){
console.log("500");
});
$rootScope.$on(HTTPErrors.serviceError, function(event, args){
console.log("503");
});
конечно, вам нужно ввести HTTPErrors
в этот контроллер.