一尘不染

将$ http注入angular工厂($ exceptionHandler)会导致循环依赖

angularjs

当我尝试将$ http注入到覆盖的工厂中时,出现错误:

未捕获的错误:[$ injector:cdep]找到循环依赖项:$ http <-$ exceptionHandler <-$ rootScope

AngularModule.factory('$exceptionHandler',  function ($http) {

任何想法如何解决?如果我使用[]注入,则$ http是未定义的

编辑 ___ _ ___ ___ _

根据下面的答案,我尝试了:

MyModule.config(function($provide, $http) {
    $provide.decorator("$exceptionHandler", function($delegate) {
        return function(exception, cause) {..

但我仍然收到循环错误:

未捕获的错误:[$ injector:cdep]找到循环依赖项:$ http <-$ exceptionHandler <-$ rootScope


阅读 250

收藏
2020-07-04

共1个答案

一尘不染

注入$injector,然后$http从那里获取服务。像这样:

AngularModule.factory('$exceptionHandler',  function ($injector) {
    var $http = $injector.get("$http");

参见https://groups.google.com/forum/#!topic/angular/lbFY_14ZtnU/discussion

但是,这将完全覆盖$exceptionHandlerAngular提供的功能。

2020-07-04