Hen*_*Tao 3 javascript dependency-injection module angularjs
我很好奇,在这种情况下仍然无法解释依赖循环(传递).
angular.module('mainApp', ['addon.dashboard']).factory('Test', function(){
return {
hello: 'moto'
};
});
angular.module('addon.dashboard', ['mainApp']).controller('Demo', function(Test){
console.log(Test.hello);
});
Run Code Online (Sandbox Code Playgroud)
这是我的应用程序中的示例代码.该mainApp模块需要注入addon.dashboard模块.否则,addon.dashboard模块需要注入mainApp模块.我们可以看到它可能在这里循环.但它适用于我的应用程序.控制器Demo实际输出moto到控制台.
角度如何处理循环注入?
您可能希望查看角度代码(尤其是loadModules方法).基本上有一个包含所有加载模块的HashMap.如果它不在HashMap中,则将其置于其中,然后继续初始化模块的其余部分.如果它已经在集合中,它将立即返回.
所以,在你的情况下,让我们说mainApp首先被加载.它将它放入loadedModules并找到它的依赖项.当它找到addon.dashboard时,它发现mainApp是一个依赖项,但它已经存在于loadedModules中,所以它立即返回.
如果断点到angular.js的"loadModules"方法,它会好很多
| 归档时间: |
|
| 查看次数: |
386 次 |
| 最近记录: |