Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 列出AngularJS模块中声明的指令/控制器_Javascript_Angularjs - Fatal编程技术网

Javascript 列出AngularJS模块中声明的指令/控制器

Javascript 列出AngularJS模块中声明的指令/控制器,javascript,angularjs,Javascript,Angularjs,有没有办法列出为给定角度模块定义的所有指令和控制器?例如,假设我在“main”模块中定义了三个控制器(即angular.module('main').controller('MainCtrl',function(){…})。有没有办法获得这三个控制器的列表?嗯,我认为这很难,也不是一件好事,但是: var app = angular.module('MyApp', []); console.log(app._invokeQueue[0][2][1]); _invokeQueue是一个数组,如

有没有办法列出为给定角度模块定义的所有指令和控制器?例如,假设我在“main”模块中定义了三个控制器(即angular.module('main').controller('MainCtrl',function(){…})。有没有办法获得这三个控制器的列表?

嗯,我认为这很难,也不是一件好事,但是:

var app = angular.module('MyApp', []);

console.log(app._invokeQueue[0][2][1]);
_invokeQueue是一个数组,如果您对每个条目执行该操作,并获得[0][2][1],您将在模块中看到每个提供程序的名称

如果你单独使用_invokeQueue,你会看到很多东西,你会喜欢下面的提供者名称,但也喜欢他的类型(指令、控制器等等)

但是你觉得这是一件棘手的事情,不是一件好事,一个非常糟糕的练习,但无论如何,这真的很有趣


不要在生产中使用它!

当然,你可以实现一个定制服务,每个控制器都会对这个服务说:我是……然后你可以调用这个服务。在变量用uglifyJS破坏我的项目后,这在识别依赖注入问题方面非常有用。谢谢!
angular.module('myApp')[''u invokeQueue'](function(value){console.log(value[2][1])}
你可以看到DI注释的用法,或者没有:如果你使用
value[2][0]
你实际上得到了一个可注入名称的列表
angular.module('qirt')[''u invokeQueue'].forEach(function(value){console.log(value[2][0])