javascript - $provide.decorator 为指令提供未知提供者

标签 javascript angularjs

我延迟加载依赖于用户的模块。然后我不想为模块加载的指令声明一个装饰器。但在尝试装饰指令时,我遇到了未知的提供者。

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] Unknown provider: demoDirectiveProvider

如果我更改代码以采用服务或工厂,它就会起作用。

以下两幅作品

if(service[1] === 'service')
if(service[1] === 'factory')

任何关于为什么这不能与指令一起使用的建议

最佳答案

原来 Angular 指令名称带有“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;
            })
        }
    });
});

关于javascript - $provide.decorator 为指令提供未知提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36334985/

相关文章:

带有 Bootstrap 3 导航栏的 AngularJS 不会在小型设备和哈希标记链接上崩溃

javascript - 使用 Javascript 提交 HTML5 表单并验证其输入

javascript - 将参数传递给 React Router 中的 React 元素

javascript - 提交时不允许修改隐藏输入

javascript - 如何在 Angular 中添加服务以便 Controller 可以使用它?

javascript - 使用 Angular 的类似选择框的老虎机

javascript - 索引 angularjs 应用程序 - Googlebot 模拟与站点 :domain

javascript - html-webpack-plugin 和 webpack 2 : no starting slash '/'

javascript - 设置 ContentPane 内容时如何保留旧内容

javascript - 如何从在 AngularJS 中调用 $http.get 的函数返回 promise ?