我懒得加载依赖于用户的模块。然后我不想为装载模块的指令声明装饰器。但是在尝试装饰指令时我会得到未知的提供者。
angular.module(moduleName).config(function ($provide) {
var invokeQueue = angular.module(moduleName)._invokeQueue;
invokeQueue.forEach(function (service) {
if(service[1] === 'directive'){
var directive = service[2][0];
$provide.decorator(directive, function ($delegate) {
return $delegate;
})
}
});
});
var directive是指令名称,正在设置中。
错误
[$ injector:unpr]未知提供者:demoDirectiveProvider
如果我更改代码以获取服务或工厂,那么它可以工作。
以下两项工作
if(service[1] === 'service')
if(service[1] === 'factory')
任何有关为何使用指令
的建议答案 0 :(得分:3)
结果是角度指令名称后缀为“指令”。
angular.module(moduleName).config(function ($provide) {
var invokeQueue = angular.module(moduleName)._invokeQueue;
invokeQueue.forEach(function (service) {
if(service[1] === 'directive'){
var directive = service[2][0];
console.log(directive);
$provide.decorator(directive+'Directive', function ($delegate) {
return $delegate;
})
}
});
});