我是AngularJS的新手。我试着找出这两个控制器定义之间的区别:
app.controller('simpleController', ['$scope', function($scope) {
}]);
app.controller('simpleController', function($scope) {
});
我总是使用第二个例子,但有时候我会看到人们使用第一个例子。我为什么要那样做?第一个示例中的控制器是继承另一个$ scope变量吗?
答案 0 :(得分:2)
第一个例子
app.controller('simpleController', ['$scope', function($scope) {
}]);
允许您minify
您的代码
minifer
将$ scope转换为变量a。但其标识仍保留在字符串中。
因此,如果您希望稍后minify
您的代码,请使用第一个示例。
答案 1 :(得分:1)
这两个控制器定义完全相同。在第一个定义中,您通过使用字符串明确告知Angular依赖项的名称。这允许您缩小代码,因为minifiers不会更改字符串的内容。
在第二个定义中,Angular通过查看参数名称来推断要注入的依赖项,因此缩小此代码会破坏它。