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

时间:2015-01-26 18:52:10

标签: javascript angularjs web

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

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

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

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

2 个答案:

答案 0 :(得分:2)

第一个例子

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

允许您minify您的代码

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

答案 1 :(得分:1)

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

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