我想发布 Angular 应用程序内部发生的错误。

我遵循了这个 related question 中给出的方法,正如答案中所建议的那样,我注入(inject)了 $injector,然后从那里获得了 $http 服务。 但是线

Uncaught Error: Circular dependency: $http <- $exceptionHandler <- $rootScope

持续不断。

here is the fiddle with the problem

相关代码:

var mod = angular.module('test', []); 
mod.config(function ($provide) { 
    $provide.decorator("$exceptionHandler", ['$delegate', '$injector',             function ($delegate, $injector) { 
      var $http = $injector.get("$http"); 
    }]); 
  }); 
mod.controller('testCtrl', function ($scope) { 
  }); 

如果你注释行

var $http = $injector.get("$http");

循环依赖错误消失了。

我想我在理解中遗漏了一些东西。我究竟做错了什么?毕竟,这似乎对其他人有用。

也欢迎就如何实现“将错误发布到服务”这一最初目标提出任何建议。

谢谢大家

请您参考如下方法:

将你的注入(inject)器代码包装在函数中

var mod = angular.module('test', []); 
mod.config(function ($provide) { 
    $provide.decorator("$exceptionHandler", ['$delegate', '$injector',function ($delegate, $injector) { 
           return function (exception, cause) { 
              var $http = $injector.get("$http"); 
           } 
    }]); 
  }); 
 
  mod.controller('testCtrl', function ($scope) { 
  }); 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!