当前位置: 首页 > 面试题库 >

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

萧宣
2023-03-14
问题内容

当我尝试将$ 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


问题答案:

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

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

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

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



 类似资料:
  • 问题内容: 我正在努力实现的目标 如果$ http请求返回401错误,我想过渡到某个状态(登录)。因此,我创建了一个$ http拦截器。 问题 当我试图将’$ state’插入拦截器时,我得到了循环依赖。为什么以及如何解决? 码 问题答案: 修复 使用服务获取对服务的引用。 原因 angular-ui-router将服务作为依赖项注入,然后在分派拦截器时在其内部创建对自身的循环引用。 如果您尝试将

  • 问题内容: 我正在尝试为AngularJS应用编写HTTP拦截器以处理身份验证。 这段代码有效,但是我担心手动注入服务,因为我认为Angular应该自动处理此问题: 我刚开始做的事情,但是遇到了循环依赖问题: 我担心的另一个原因是Angular Docs中$ http上 的部分似乎显示了一种将依赖项注入“常规方式”到Http拦截器中的方法。请参阅“拦截器”下的代码段: 上面的代码应该放在哪里? 我

  • 我对react钩子和效果有点陌生,在使用useEffect时遇到了问题 上面的代码是我构建的useEffect,用于使用axios获取数据库中的所有数据,并且我将所有数据放在一个称为reports的状态中。 但是当我console.log报告时,它会导致无限循环。我不知道为什么? 让我给你看一个我做的简单动作。 我正在做一个按钮,当它被点击时,报告的状态(按id)将被更新。 这是该州报告结构的样本

  • 问题内容: 我试图弄清楚为什么页面在单击时没有导航到其模板。URL更新,并且我没有JS错误。。我相信它 会加载 文件,但随后会无限加载控制器。我在SessionsController的实例化中添加了代码后,发现了这一点。 布局 我的看法 我的JS 在里面,我有个大而光明的人: 问题答案: 我唯一看到的是缺少括号和逗号。您可以尝试以下方法:

  • 我正在尝试使用Guice 3.0,它不会实例化工厂。 SSCCE代码: < code>BarImpl与< code>FooImpl非常相似。这里出了什么问题?还要注意,我在这里尝试了< code>@AssistedInject和< code>@Inject,两者都会导致错误。 输出: 请注意,第 9 行是对 的第一次调用的行