内联数组注释 - 为什么两个$范围用于此代码

时间:2017-08-05 21:31:31

标签: angularjs dependency-injection

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

script.js

angular.module('scopeExample', [])
.controller('MyController', ['$scope', function($scope) { // This line
  $scope.username = 'World';

  $scope.sayHello = function() {
    $scope.greeting = 'Hello ' + $scope.username + '!';
  };
}]);

index.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

2 个答案:

答案 0 :(得分:2)

Angular JS - 内联数组注释

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

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

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

否则它看起来像

function(a){}
缩小之后

并且角度不知道哪个依赖性意味着什么。

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

答案 1 :(得分:0)

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

Inline Array Annotation

  

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

     

例如:

// I want this "then" to only happen when my observable is complete.
authService.updatePicture().then(p => {
    document.querySelector('img').src = this.userAuth.photoURL);
}
     

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

     

使用此类注释时,请注意保留注释   数组与函数声明中的参数同步。