[英]AngularJS Core Module Dependency
假設我有一個包含客戶模塊、產品模塊和核心模塊的應用程序。 在我的應用程序模塊中,我將導入所有三個模塊(客戶、產品、核心)。 因此,客戶和產品模塊都可以訪問核心模塊。 但是,例如,如果我的客戶模塊專門依賴於核心模塊中的服務,我是否也應該在我的客戶模塊中導入核心模塊?
基本上,將我的核心模塊導入添加到我的應用程序模塊中需要它的所有模塊中是一個好主意嗎? 或者我應該只在應用程序級別包含核心模塊並讓其他模塊相信核心模塊將始終在應用程序級別導入?
沒什么大不了的
相信核心模塊將始終在應用程序級別導入
但是 AngularJS 如何管理模塊。 當你寫這樣的東西
angular.module('app', ['A','B','C']);
基本上你是說,為了讓模塊app
工作,你需要導入模塊A
, B
和C
。 之后在模塊B
中可能你必須導入一些其他模塊
angular.module('B', ['C', 'D', 'E', 'F']);
正如您在此示例中看到的,應用程序和模塊B
都需要C
。
AngularJS 隱式地為此依賴關系構建一個樹,它將在其中
A
、 B
、 C
在一級D
, E
, F
作為第二層的葉子, B
的所有孩子C 不再出現在第二層中,因為它已經出現在第一層中。 然后 Angular 將繼續從根加載所有模塊到查看樹的葉子。
因此,回答您的問題: AngularJS 足夠智能,可以避免因為您錯誤地聲明了兩次而多次加載內容。 通過構建樹副本來計算。
你必須避免做的是:
angular.module('app', ['A']);
angular.module('A', ['B']);
angular.module('B', ['C']);
angular.module('C', ['A']);
如您所見,生成的圖表是這樣的:
app -> A -> B -> C -> A -> B -> C -> A -> ....
而且您有一個 angular 永遠無法解決的循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.