【问题标题】:Angularjs module dependencies loopAngularjs 模块依赖循环
【发布时间】:2014-04-28 07:09:39
【问题描述】:

我很好奇,在这种情况下仍然无法解释依赖循环(通过)。

angular.module('mainApp', ['addon.dashboard']).factory('Test', function(){
    return {
        hello: 'moto'
    };
});
angular.module('addon.dashboard', ['mainApp']).controller('Demo', function(Test){
    console.log(Test.hello);
});

这是我的应用程序中的示例代码。 mainApp 模块需要注入 addon.dashboard 模块。否则,addon.dashboard 模块需要注入 mainApp 模块。 我们可以看到它可能会在这里循环。但它适用于我的应用程序。控制器 Demo 实际上将moto 输出到控制台。

Angular 如何处理这样的循环注入?

【问题讨论】:

    标签: javascript angularjs dependency-injection module


    【解决方案1】:

    您可能想查看角度代码(尤其是 loadModules 方法)。基本上有一个 HashMap 包含所有加载的模块。如果它不在 HashMap 中,则将其放入其中,然后继续初始化模块的其余部分。如果它已经在集合中,它将立即返回。

    因此,在您的情况下,假设首先加载 mainApp。它将它放入loadedModules 中,然后去查找它的依赖项。找到addon.dashboard的时候发现mainApp是一个依赖,但是它已经存在于loadedModules中,所以立即返回。

    如果你在 angular.js 的“loadModules”方法中断点会好很多

    【讨论】:

      猜你喜欢
      • 2014-05-19
      • 2018-03-17
      • 2017-10-27
      • 2021-09-18
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      • 2016-08-27
      • 1970-01-01
      相关资源
      最近更新 更多