刚刚看了2个不同的演示,它们在代码中有些不同。 两种不同方法的原因是什么?
app.controller('AppCtrl', ['$scope', '$mdDialog', function($scope, $mdDialog){
//Code goes here
}]);
和
app.controller('AppCtrl', function($scope, $mdDialog){
//Code goes here
});
据我了解,第一个建议是在我使用缩小的情况下......但是还有其他理由要考虑吗?
答案 0 :(得分:2)
第一种语法是缩小安全。
如果您缩小第二种语法,您将获得控制器:
function(a,b){...};
然后你会收到错误。
请注意,您可以使用 ng-annotate 等构建插件,将您的代码从第二种语法转换为第一种语法,从而使您的代码 minification-safe 。这就是为什么使用第二种语法更方便。
答案 1 :(得分:2)
两种方法都是使用依赖注入的方法,你可以在这个问题上阅读angular's documentation。
基本上,您刚才提到的选项:
选项1 - 内联数组注释 - 这里我们传递一个数组,其元素由一个字符串列表(依赖项的名称)后跟函数本身组成。
选项2 - 隐式注释 - 您假设函数参数名称是依赖项的名称
选项1可以安全地缩小。 请参阅相关帖子 - Why implicit annotation are not safe to minify