以下angularjs控制器定义有什么区别?

时间:2014-05-09 10:22:47

标签: javascript angularjs angularjs-controller

var app = angular.module('myApp', []); app.controller('myController', ['$scope', function($scope, []) { ..... }]);

var app = angular.module('myApp', []); app.controller('myController', function($scope, []) { ..... });

在第一个示例中,在回调函数周围使用方括号,但在第二个示例中,回调函数周围没有方括号。

2 个答案:

答案 0 :(得分:4)

第二个用于防止缩小碎片,因为当你破坏第一个版本时,你会说“

var b = a.module('myApp', []);
b.controller('myController', function(a, []) {
      .....
      // if you use $scope here it will get mangled and may not be what you expect, this potentially breaks the code
});

然而,如果您使用第二个保护变量,那么angular知道如何分配注入的依赖项,并且您的代码不会再破坏了!

答案 1 :(得分:1)

您可以使用字符串和变量名注入依赖项,这用于缩小,因为正在评估和注入变量/参数名称。

第一个例子实际上应该这样编写:

var app = angular.module('myApp', []);
app.controller('myController',[ '$scope', function($scope, []) {
      .....
]});