在AngularJS中定义控制器时,为什么不使用显式注释?

Nic*_*olk 4 javascript dependency-injection angularjs angularjs-controller

我是AngularJS的新手,并且学习了两种编写控制器函数的方式.似乎有人不使用显式注释的唯一原因是节省时间,这似乎不是一个好理由.并且能够缩小/混淆代码似乎是我想要保留在任何应用程序中的要求.

另请注意,我不是问哪个更好还是要求辩论.我问的是什么原因(或在什么情况下)使用显式注释会更有益.

我在说什么的例子:

module('myApp').controller('MyController', function($scope) {});
Run Code Online (Sandbox Code Playgroud)

module('myApp').controller('MyController', ['$scope', function($scope) {}]);
Run Code Online (Sandbox Code Playgroud)

Mic*_*ord 6

直列排列注释是简单地在Java脚本限制的解决办法,使角码进行微细化以及不停止工作.但它不是一个很好的解决方案,因为如果强迫你复制你的代码.我们都知道重复代码有多糟糕.Angular文档本身承认:

使用此类注释时,请注意使注释数组与函数声明中的参数保持同步.

添加新依赖项并忘记添加相应的注释太容易了.或者重新排序参数并忘记更新注释列表.相信我.去过也做过.

幸运的是,智能人员开发的工具可以通过自动注释代码来减轻负担.可能最知名的是ng-annotate,正如@pankajparkar所提到的那样.您所要做的就是将其插入构建过程中,并且您的代码将被正确注释.

说实话,我发现Angular文档建议不要采用这种方法.