角度控制器 - 注释

时间:2015-03-23 15:57:18

标签: angularjs controller

刚刚看了2个不同的演示,它们在代码中有些不同。 两种不同方法的原因是什么?

app.controller('AppCtrl', ['$scope', '$mdDialog', function($scope, $mdDialog){
  //Code goes here
}]);

app.controller('AppCtrl', function($scope, $mdDialog){
  //Code goes here
});

据我了解,第一个建议是在我使用缩小的情况下......但是还有其他理由要考虑吗?

2 个答案:

答案 0 :(得分:2)

第一种语法是缩小安全。

如果您缩小第二种语法,您将获得控制器:

function(a,b){...};

然后你会收到错误。

请注意,您可以使用 ng-annotate 等构建插件,将您的代码从第二种语法转换为第一种语法,从而使您的代码 minification-safe 。这就是为什么使用第二种语法更方便。

答案 1 :(得分:2)

两种方法都是使用依赖注入的方法,你可以在这个问题上阅读angular's documentation

基本上,您刚才提到的选项:

  1. 选项1 - 内联数组注释 - 这里我们传递一个数组,其元素由一个字符串列表(依赖项的名称)后跟函数本身组成。

  2. 选项2 - 隐式注释 - 您假设函数参数名称是依赖项的名称

  3. 选项1可以安全地缩小。 请参阅相关帖子 - Why implicit annotation are not safe to minify