Mal*_*lki 3 javascript angularjs angularjs-directive
假设我有一个 angular 应用程序,它有一些模块和一些指令。
我想获取此应用程序中所有已定义指令的列表。
例如:
var myModule = angular.module('myModule', [function(){...}]);
myModule.directive('myDirective', [function () {...}]);
myModule.directive('myOtherDirective', [function () {...}]);
var myOtherModule = angular.module('myOtherModule', [function(){...}]);
myOtherModule.directive('thirdDirective', [function () {...}]);
Run Code Online (Sandbox Code Playgroud)
我想编写一个getAllDirectives()将返回的函数['myDirective','myOtherDirective','thirdDirective']。
此外,如果可能的话,我还想知道每个指令属于哪个模块:
{
'myModule': ['myDirective','myOtherDirective'],
'myOtherModule':['thirdDirective']
}
Run Code Online (Sandbox Code Playgroud)
如何才能做到这一点?
请注意,我需要在应用程序本身之外并在它已经加载之后执行此操作。我确实可以访问页面上公开的任何内容,例如angular对象和DOM.
您可以使用像这样的自定义函数来获取每个模块中定义的所有指令:
function get_directives(name) {
var result = [],
invokes = angular.module(name)._invokeQueue;
for(var i=0; i<invokes.length; ++i) {
if(invokes[i][1] == "directive") {
result.push(invokes[i][2][0]);
}
}
return result;
}
var result = {
'myModule': get_directives('myModule'),
'myOtherModule': get_directives('myOtherModule'),
};
Run Code Online (Sandbox Code Playgroud)
您还可以检查angular.module('module_name')._invokeQueue列表以获取未来知识。
| 归档时间: |
|
| 查看次数: |
2721 次 |
| 最近记录: |