AngularJS 中 function($scope) 和 ['$scope', function($scope)] 的区别

Difference of function($scope) and ['$scope', function($scope)] in AngularJS

我是 AngularJS 的新手。我试图找出这两个控制器定义之间的区别:

app.controller('simpleController', ['$scope', function($scope) {
}]);

app.controller('simpleController', function($scope) {
});

我总是用第二个例子,但有时我看到有人用第一个例子。我为什么要那么做?第一个示例中的控制器是否继承了另一个 $scope 变量?

第一个例子

app.controller('simpleController', ['$scope', function($scope) {
}]);

让你minify你的代码

minifer 将 $scope 转换为变量 a.but 它的身份仍然保留在字符串中。 因此,如果您想稍后 minify 您的代码,请使用第一个示例。

这两个控制器定义做完全相同的事情。在第一个定义中,您通过使用字符串明确地告诉 Angular 依赖项的名称。这允许您缩小代码,因为缩小器不会更改字符串的内容。

在第二个定义中,Angular 通过查看参数名称推断要注入的依赖项,因此缩小此代码将破坏它。