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

AngularJS - Purpose of Writing $scope Before function($scope)

本文关键字:scope 函数 AngularJS-      更新时间:2023-09-26

我开始学习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,还以类似的方式添加了其他依赖项。

阅读关于A note on minification的部分。

https://docs.angularjs.org/tutorial/step_05

简而言之,两种声明依赖关系的方法是相同的。使用数组表示法是为了使minifier不会缩小依赖项,并且angular会确切地知道要获取什么。

如果你不缩小你的代码,你可以使用任何一种方式进行依赖注入。

确实存在。编写['$someInjectable', function ($someInjectable)就是我们所说的"缩小校对"。一些后编译器会出现并缩小您的javascript,将您的变量混淆为神秘的a、b、c。。。AngularJS在内部检查function ($scope)以确定该函数需要接收到$scope的句柄。如果缩小代码,变量名称将丢失,但文字保持不变。数组链语法是确保angular可以确定function (a, b)实际上是function ($scope, $element)的一种方法。