Javascript 站点范围内的错误消息以角度方式广播

Javascript 站点范围内的错误消息以角度方式广播,javascript,angularjs,Javascript,Angularjs,如果$http调用出现错误,我有一种单一的方式向用户显示,目前我通过执行以下操作来调用它: $http({ //do stuff }). error(function(){ $scope.$broadcast('error'); }); 我有一个指令,它监听$on的错误 但是,我只是在使用$http的任何地方重复$broadcast,是否可以扩展默认错误回调以每次广播错误?我建议您改用响应拦截器 您可以在上找到详细信息,但其工作原理如下: angular.module('app',

如果$http调用出现错误,我有一种单一的方式向用户显示,目前我通过执行以下操作来调用它:

$http({

  //do stuff

}).
error(function(){
  $scope.$broadcast('error');
});
我有一个指令,它监听$on的错误


但是,我只是在使用$http的任何地方重复$broadcast,是否可以扩展默认错误回调以每次广播错误?

我建议您改用响应拦截器

您可以在上找到详细信息,但其工作原理如下:

angular.module('app', []);

angular.module('app').factory('myHttpErrorInterceptor', function ($q) {
    return {
        'responseError': function (rejection) {
            console.log('DEBUG: Status:', rejection.status);
            return $q.reject(rejection);
        }
    };
});

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

angular.module('app').run(function ($http) {
    $http.get('http://example.org/that-doesnt-exist');    
});
您可以广播错误,而不是我的
控制台.log


您可以找到一个实例。

我建议使用响应。让我编写一个简单的示例。