Javascript AngularJS中函数($scope)和[';$scope';,函数($scope)]的差异

Javascript AngularJS中函数($scope)和[';$scope';,函数($scope)]的差异,javascript,angularjs,web,Javascript,Angularjs,Web,我对AngularJS是新手。我试图找出这两个控制器定义之间的区别: app.controller('simpleController', ['$scope', function($scope) { }]); app.controller('simpleController', function($scope) { }); 我总是使用第二个例子,但有时我看到人们使用第一个例子。我为什么要这样做?第一个示例中的控制器是否继承了另一个$scope变量?第一个示例 app.controller('

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

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

app.controller('simpleController', function($scope) {
});
我总是使用第二个例子,但有时我看到人们使用第一个例子。我为什么要这样做?第一个示例中的控制器是否继承了另一个$scope变量?

第一个示例

app.controller('simpleController', ['$scope', function($scope) {
}]);
允许您缩小代码

minifer
将$scope转换为变量a。但其标识仍保留在字符串中。
因此,如果您希望以后缩小代码,请使用第一个示例。

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


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

第一个示例允许缩小代码。我不知道可能重复的技术原因-@Ronnie-这是因为angular根据提供给构造函数的参数推断依赖项的身份。如果这些都缩小了,依赖项注入器就无法计算出依赖项。Gulp package Gulp ng Annotation应该能够将根据示例2构造的代码转换为示例1的结构(即准备缩小)。不过我还没用过。