javascript - AngularJS 转换为压缩友好型

标签 javascript angularjs angularjs-directive

当我缩小 js 脚本时,出现 Unknown provider: eProvider <- e <- myDirective 错误

angular
    .module('myApp', [])
    .run(['$state', run])
    .config(['$provide', config]);

function config($provide) {
    $provide.decorator('myDirective', function($delegate) {
        var directive = $delegate[0];
        directive.controller = 'MyController as vm';

        return $delegate;
    })
}

这似乎是一个缩小问题,其中重命名了变量。虽然我不确定如何将其转换为缩小友好的。

最佳答案

您需要将 $delegte 注入(inject)装饰器。你可以通过两种方式做到这一点。

一种是创建单独的函数并向该函数注入(inject)服务,如下所示。

angular
    .module('myApp', [])
    .run(['$state', run])
    .config(['$provide', config]);

function config($provide) {
    $provide.decorator('myDirective', dirFun)
}

dirFun.$inject = ['$delegate'];

function dirFun($delegate) {
    var directive = $delegate[0];
    directive.controller = 'MyController as vm';
    return $delegate;
}

选项2

function config($provide) {
    $provide.decorator('myDirective',['$delegate',function($delegate) {
        var directive = $delegate[0];
        directive.controller = 'MyController as vm';

        return $delegate;
    }])
}

关于javascript - AngularJS 转换为压缩友好型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42711312/

相关文章:

javascript - 如何打开可以在资源管理器中选择多个文件的文件选择器

javascript - Internet 浏览器 jquery + SVG

javascript - 创建 React 组件的不同实例

Angularjs 有在社交网络中分享的问题

javascript - 多维javascript

angularjs - Laravel:使用 Angular 制作实时应用程序

jquery - Angular 指令中的 DOM 操作

AngularJS 如何获取额外的路由参数

javascript - 自定义指令中的 Angular UI 指令

angularjs - Angular : append html in dom element