当您定义每个指令时,AngularJS将为每个指令创建[name]指令服务。
我有没有办法获得我在特定模块中创建的指令集?
angular.module('myModule',[])
.directive('aa',...)
.directive('bb',...)
.directive('cc',['allDirectiveService',function(allDirectiveService){
// can access all the directive here
}])
答案 0 :(得分:0)
在你的位置,我会仅为指令声明我的主app模块的子模块,类似于:
if (window.myApp == null) {
window.myApp = {
myApp: angular.module('myApp', [ 'Directives']),
Directives: angular.module('Directives', []),
};
}
myApp.Directives.directive('myDirective', [
function() {
return {
restrict: 'E',
replace: false
};
}
]);
然后我想如果您执行类似console.log(myApp.Directives);
的操作,您可以看到所有指令。我没有测试过,但我认为它有效。
答案 1 :(得分:0)
是的,虽然我不在系统上,但我可以验证变量名称。 有一个包含所有已注册指令,服务等的数组。您可以遍历列表并提取指令。
// Variable starts with underscore and is an array
angular.module('foo')._