内联数组注释 - 为什么此代码使用两个$scopes



我正在浏览 Angular JS 文档。我无法弄清楚我在下面的代码中提到的一行。谁能解释一下?

脚本.js

angular.module('scopeExample', [])
.controller('MyController', ['$scope', function($scope) { // This line
$scope.username = 'World';
$scope.sayHello = function() {
$scope.greeting = 'Hello ' + $scope.username + '!';
};
}]);

索引.html

<div ng-controller="MyController">
Your name:
<input type="text" ng-model="username">
<button ng-click='sayHello()'>greet</button>
<hr>
{{greeting}}
</div>

我不明白这一点:

['$scope', function($scope) {}]

这里,为什么使用两个$scope

Angular JS - 内联数组注释

它用于避免缩小问题。 缩小后,代码如下所示:

['$scope', function(a) {}]

所以 Angular 知道要注入哪些依赖项。

否则它看起来像

function(a){}

缩小和角度后不知道哪个依赖是什么意思。

您可以在 AngularJS 文档(依赖注入(中找到更多信息。 https://docs.angularjs.org/guide/di

在Michael的帮助下,我在Angular JS Docs上找到了这个。

内联数组注释

这是批注应用程序组件的首选方法。这是 文档中的示例是如何编写的。

例如:

someModule.controller('MyController', ['$scope', 'greeter', function($scope, greeter) {
// ...
}]);

在这里,我们传递一个数组,其元素由字符串列表组成( 依赖项的名称(,后跟函数本身。

使用这种类型的批注时,请注意保留批注 数组与函数声明中的参数同步。

最新更新