Javascript $provider.decorator为指令提供未知提供程序
我延迟加载依赖于用户的模块。然后我不想为与模块一起加载的指令声明一个修饰符。但当我试图装饰一个指令时,我得到了一个未知的提供者Javascript $provider.decorator为指令提供未知提供程序,javascript,angularjs,Javascript,Angularjs,我延迟加载依赖于用户的模块。然后我不想为与模块一起加载的指令声明一个修饰符。但当我试图装饰一个指令时,我得到了一个未知的提供者 angular.module(moduleName).config(function ($provide) { var invokeQueue = angular.module(moduleName)._invokeQueue; invokeQueue.forEach(function (service) { if(service[1]
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指令是正在设置的指令名称
错误
[$injector:unpr]未知提供程序:解调器提供程序
如果我改代码为接受服务或工厂,它就会工作
以下两项工作
if(service[1] === 'service')
if(service[1] === 'factory')
任何关于此wan为什么不能与指令一起工作的建议都表明,角度指令名称的后缀是“directive” 哈我认为“指令”后缀只是人们用来举例的惯例。不,这是必需的。谢谢
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;
})
}
});
});