以下agularjs控制器定义的区别是什么?

What is difference between following agularjs controller definition?

本文关键字:区别 是什么 定义 agularjs 控制器 以下      更新时间:2023-09-26

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

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

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

第二个是用来防止最小化篡改的,因为当你篡改第一个版本时,你会得到比如

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就知道你是如何分配注入依赖的,你的代码就不会再崩溃了!

您可以使用字符串和变量名注入依赖项,这用于最小化,因为变量/参数名称正在被计算和注入。

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

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