角度控制器参数

时间:2013-12-31 11:13:35

标签: javascript angularjs

以下是此页面的角度代码:http://docs.angularjs.org/guide/controller

1 var myApp = angular.module('myApp',[]);
2 
3 myApp.controller('GreetingCtrl', ['$scope', function($scope) {
4     $scope.greeting = 'Hola!';
5 }]);

在上面的第3行,字符串'$scope'的目的是什么?

我不能这样做吗? myApp.controller('GreetingCtrl', function($scope) { ... })

有一个数组和参数的名称有什么好处?

2 个答案:

答案 0 :(得分:3)

参数的原因是确保角度依赖注入器可以在代码缩小时识别要注入的对象。

请参阅角度网站上的A Note on Minification部分。

答案 1 :(得分:1)

是的,你绝对可以写出来myApp.controller('GreetingCtrl', function($scope) { ... })

两种方式都是正确的。

不同之处在于您是内联注释函数,因此当您缩小脚本时,您的依赖项工作正常。

当您将$ scope作为参数写入函数时,angular编译器会在控制器中注入scope变量。而且它必须只是$ cope没有别的。

因此,当您缩小脚本时,变量的名称会发生​​变化。因此,在正常情况下,如果更改名称变量,则脚本将无法工作。所以你用数组表示法写出变量的实际名称(这是在angularJS中注释的方式)。

检查Angular JS官方文档:[Angular JS Dependency Injection 1