var mod = angular.module('myModule', ['otherModule1','otherModule2']);
那么mod对象也将有一个mod.requires数组,其中包含这些模块依赖项的名称,如下所示:
angular.forEach(mod.requires, function(requiredModuleName){
// first get a reference to the required module by calling angular.module()
var requiredMod = angular.module(requiredModuleName);
// requiredMod will have its own ._invokeQueue
// requiredMod._invokeQueue will look like the _invokeQueue from above
...
// do something with the additional providers in _invokeQueue
});
4条答案
按热度按时间kd3sttzy1#
您可以获得每个模块的提供者列表(即服务/指令/控制器/工厂/等),尽管该列表有点神秘。
假设您有以下内容:
然后
mod
变量将包含一个名为mod._invokeQueue
的属性,该属性将包含该模块中所有提供程序的数组。因此,您可以在
mod._invokeQueue
中搜索它包含的每个提供程序。但是它只包含该特定模块的提供者列表,如果你想得到所有依赖模块的列表,你需要遍历
mod.requires
数组。如果模块具有模块级依赖项,如下所示:
那么
mod
对象也将有一个mod.requires
数组,其中包含这些模块依赖项的名称,如下所示:cnh2zyt32#
试试这个:
wvt8vs2t3#
以下是获取大多数服务的方法
例如:常量、值、工厂、服务。
现在,当您在控制台中键入
allMyServices.
时,您将获得它们的自动完成列表。上面的函数在
angular.element(document).injector()
返回undefined的某些情况下可能会失败。您可以使用下面的函数来代替...替代方法
现在,当您在控制台中键入
allMyServices.
时,您将获得它们的自动完成列表。注意:无论使用哪种方法,都要确保将
'MyApp'
替换为您的模块名称。w8f9ii694#
我用一些代码创建了一个GitHub gist,它可以以Graphviz友好的格式输出依赖关系,这意味着您应该能够可视化依赖关系图。
参见https://gist.github.com/dlidstrom/a2f787cef41ea4fcb8aa74d459f49270。