首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS核心模块依赖关系

问AngularJS核心模块依赖关系
EN

Stack Overflow用户
提问于 2020-07-11 03:11:40
回答 1查看 88关注 0票数 0

假设我有一个包含客户模块、产品模块和核心模块的应用程序。在我的app模块中,我将导入所有三个模块(客户、产品、核心)。因此,客户模块和产品模块都可以访问核心模块。但是,例如,如果我的customer模块特别依赖于核心模块中的服务,我是否也应该在customer模块中导入核心模块?

基本上,将我的核心模块导入添加到所有需要它的模块以及我的应用程序模块中是一个好主意吗?或者我应该只在应用程序级别包含核心模块,并让其他模块相信核心模块将始终在应用程序级别导入?

EN

回答 1

Stack Overflow用户

发布于 2020-07-11 18:08:18

这不是太多关于

相信核心模块将始终在应用程序级别导入

而是AngularJS如何管理模块。当你像这样写东西的时候

代码语言:javascript
复制
angular.module('app', ['A','B','C']);

基本上,您的意思是为了让模块app工作,您需要导入模块A、B和C。之后,在模块B中,您可能需要导入一些其他模块

代码语言:javascript
复制
angular.module('B', ['C', 'D', 'E', 'F']);

正如您在本例中看到的,app和模块B都需要C。

AngularJS隐式地为该依赖项构建了一个树,它将在该树中

作为root

  • A,

  • 的B

应用程序,在第一个

  • 中的C,在第二个级别中的F,都是B

的子级

C不再出现在第二层中,因为它已经出现在第一层中。然后,Angular将继续加载从根到叶的所有模块,查看树。

所以,回答你的问题:AngularJS足够智能,可以避免因为你错误地声明了两次而多次加载东西。通过构建该树,重复项被考虑在内。

你必须避免这样做:

代码语言:javascript
复制
angular.module('app', ['A']);
angular.module('A', ['B']);
angular.module('B', ['C']);
angular.module('C', ['A']);

如您所见,生成的图表如下所示:

代码语言:javascript
复制
app -> A -> B -> C -> A -> B -> C -> A -> ....

你有一个angular永远不能解决的循环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62840889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档