如何正确缩小angularJS文件

时间:2016-08-22 18:26:22

标签: javascript angularjs minify

我有一个简单的angularjs指令,当我缩小文件时,我得到错误,因为变量名称已更改

var app= angular.module('app',[]);

app.directive('directive',function(){
    return {
        restrict: 'EA',
        scope: {},
        replace: true,
        link: function($scope, element, attributes){
            $scope.name="test-test";
        ,
        controller: function($scope,$attrs,$http){

        },
        templateUrl: 'directives/app/app.tpl.html'
    }
});

问题是$ scope.name更改为a.name而angular没有识别它。 我尝试通过尝试类似

来注入$ scope
link: ['$scope',function($scope, element, attributes){
            $scope.name="test-test";
}],
controller: ['$scope','$attrs','$http',function($scope,$attrs,$http){

}],

但是在缩小时我仍然会得到同样的a.name错误。

2 个答案:

答案 0 :(得分:1)

未注入指令link函数。它们传递了一组固定的参数,这些参数在angular.js documentation中列出并全面描述。但controller并非如此。这些是注射的,应该在缩小之前注释。你可以用至少3种方式做到这一点:

  • 使用数组语法,例如
  • 在控制器函数上设置$inject属性,其值为可注入的名称数组
  • ngAnnotate注释,它将检测角度注入的使用并正确注释

答案 1 :(得分:0)

链接功能不是依赖注入的。它仅使用位置参数,因此您不必使用该显式数组命名。我认为控制器很好。

最后,请记住,为了清晰起见,您必须编写代码。显式语法有点过于冗长,这就是大多数人选择使用ng-annotate的原因。 Ng-annotate是一个编译步骤,它将在缩小之前将代码转换为显式形式。