Angular中不同的依赖注入方式

Different way of dependency injection in Angular

在数组中定义控制器的依赖有什么不同:

app.controller('IndexController', ['$rootScope', '$http', function($rootScope, $http) {
    //some cool stuff
}]);

然后像这样将它们直接注入到函数中:

app.controller('IndexController', function($rootScope, $http) {
    //some cool stuff
});

很多帖子和教程都使用较短的版本,所以我想知道第一种方式是否有任何优势。

谢谢!

如果您使用一些缩小工具,例如uglify,这是必要的。这些工具会更改变量的名称,例如:

app.controller('IndexController', function($rootScope, $http) {
    //some cool stuff
});

变成类似:

randomVariable.controller('IndexController',function(a, b){});

并且 ab 不是您的依赖项。

在另一种情况下,缩小后的代码变成这样:

app.controller('IndexController',['$rootScope','$http',function(a,b)

这里 ab 作为两个字符串的参数传递,它们是值,因此它们不能被缩小工具修改