我开始通过在Google中看到一些示例来学习AngularJS,但没有解释过这个问题。到目前为止,我通过几个例子编写了像
这样的控制器myApp.controller('MainCtrl', function ($scope) {
$scope.text = 'Hello, Angular fanatic.';
});
但是在其他一些博客中,他们包括“范围”和“#scope;'在函数之前($ scope)
myApp.controller('MainCtrl', ['$scope', function ($scope) {
$scope.text = 'Hello, Angular fanatic.';
}]);
有什么区别吗?不仅是$ scope,也以类似的方式添加其他依赖项。
答案 0 :(得分:2)
阅读A note on minification
部分。
https://docs.angularjs.org/tutorial/step_05
简而言之,声明依赖关系的两种方式都是相同的。使用数组表示法,以便minifier不会缩小依赖关系,而angular将确切地知道要获取什么。
如果您不缩小代码,可以使用任一种方式进行依赖注入。
答案 1 :(得分:2)
['$someInjectable', function ($someInjectable)
就是我们所说的“缩小校对”。一些后期编译器会出现并缩小你的javascript,将你的变量变成神秘的a,b,c,......等等。在内部,AngularJS检查function ($scope)
以确定此函数需要接收{{{}的句柄。 1}}。如果缩小代码,变量名称将丢失,但文字保持不变。数组链语法是一种确保角度可以确定$scope
实际上是function (a, b)
的方法。