【发布时间】:2013-09-25 00:45:50
【问题描述】:
有没有办法列出为给定 Angular 模块定义的所有指令和控制器?例如,假设我在“主”模块中定义了三个控制器(即 angular.module('main').controller('MainCtrl',function() {...})。有没有办法获取列表那三个控制器?
【问题讨论】:
标签: javascript angularjs
有没有办法列出为给定 Angular 模块定义的所有指令和控制器?例如,假设我在“主”模块中定义了三个控制器(即 angular.module('main').controller('MainCtrl',function() {...})。有没有办法获取列表那三个控制器?
【问题讨论】:
标签: javascript angularjs
嗯,真的很难,我认为这不是一件好事,但是:
var app = angular.module('MyApp', []);
console.log(app._invokeQueue[0][2][1]);
_invokeQueue 是一个数组,如果您为每个获得 [0][2][1] 的条目执行此操作,您将看到模块中每个提供程序的名称。
如果您单独查找 _invokeQueue,您会看到很多您会喜欢下面的提供者名称但他的类型(指令、控制器、...)的东西;
但你觉得这是一件棘手的事情,不是一件好事,是一个非常糟糕的做法,但无论如何真的很有趣。
不要在生产中使用它!
【讨论】:
angular.module('myApp')['_invokeQueue'].forEach(function(value){ console.log(value[2][1]) })你可以看到DI Annotation的用法,或者没有:D
values[2][0],你实际上会得到一个可注射名称列表angular.module('qirt')['_invokeQueue'].forEach(function(value){ console.log(value[2][0]) })