2015-05-15 96 views
1

設置:如何獲取某些父模塊內的依賴模塊的列表?

幾個angularjs模塊聲明:

angular.module('a', ['a.b']); 

angular.module('a.b', ['a.b.c1', 'a.b.c2']); 

angular.module('a.b.c1', []); 

angular.module('a.b.c2', []); 

問:

有沒有辦法從特定父模塊讓所有的孩子模塊? 我的意思是這樣:

angular.module.getChildrenFromParent('a.b'); 

應該返回一個字符串數組或引用數組到模塊a.b.c1a.b.c2

感謝

UPDATE

我知道有How can I get a list of available modules in AngularJS?,但它不是一個乾淨的解決方案,這是一個有些舊的答案了。

回答

2

您可以使用返回的模塊對象的requires屬性(由angular.module getter調用)來獲取依賴關係列表。

var dependentModules = angular.module('a.b').requires; 

這將輸出表示該依賴關係["a.b.c1", "a.b.c2"]字符串數組。但是請注意,只有在創建模塊後才能使用它,否則爲尚未創建的模塊調用它將導致錯誤。如果你想深入實現一個遞歸查找每個依賴關係。

演示

angular.module('a.b.c1', []); 
 

 
angular.module('a.b.c2', []); 
 
angular.module('a.b', ['a.b.c1', 'a.b.c2']); 
 

 
angular.module('a', ['a.b']); 
 

 
console.log(angular.module('a.b').requires);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

+0

謝謝!我錯過了從文檔:( – diosney

+0

@diosney坦率地說,我沒有看到這在文檔中,我從來沒有發現這個屬性可用性的模塊對象,直到試圖回答你的問題。:) – PSL

+0

好吧,很高興知道我wasn'不要太懶或忽略它;) – diosney