AngularJS - 在函数($ scope)之前编写$ scope的目的

时间:2014-04-28 22:34:34

标签: javascript angularjs scope angularjs-scope

我开始通过在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,也以类似的方式添加其他依赖项。

2 个答案:

答案 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)的方法。