javascript - 在 Angular 中广播站点范围的错误消息

标签 javascript angularjs

如果 $http 调用出错,我只有一种方法可以向用户显示,目前我通过执行以下操作来调用它:

$http({

  //do stuff

}).
error(function(){
  $scope.$broadcast('error');
});

我有一个指令,用 $on 监听错误。

然而,我只是在每次使用 $http 时都重复 $broadcast,是否可以扩展默认错误回调以每次都广播错误?

最佳答案

我建议您改用响应拦截器。

您可以在 AngularJS API Reference 上找到详细信息,但这就是它的工作方式:

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');    
});

代替我的 console.log,您可以广播您的错误。

你可以找到一个活生生的例子here .

关于javascript - 在 Angular 中广播站点范围的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22275153/

相关文章:

javascript - onMouseLeave 和 onMouseOut 激活得太快;

javascript - 我尝试存储在数据库中的任何内容都输入值 '0'

javascript - 使用 javascript 函数加载 View

javascript - 等待带有 v-card 的 v-dialog 需要 Vue.js 的透明背景

json - 在 Hot Towel Angular 数据上下文中使用 return $q.when

javascript - 具有动态 templateUrl 的 angularjs 组件

javascript - 如何将 .wav 数据转换为 .mp3 并在 Meteor 应用程序中播放音频

javascript - 元素上的 jQuery.ready() 等效事件监听器?

javascript - 对象的 Angular ng-repeat 索引

javascript - AngularJS 更新表单并选择菜单选项?