定义像这样的控制器
之间有什么区别app.controller('MyCtrl', ['$scope', '$http',
function ($scope, $http) {
//...
}
]);
还是这个?
app.controller('MyCtrl', function ($scope, $http) {
//...
});
答案 0 :(得分:2)
他们都为他工作,但数组符号将在缩小时存活。
答案 1 :(得分:0)
拳头选项对于缩小比赛是安全的。
有关详细信息,请参阅此处https://docs.angularjs.org/tutorial/step_05#a-note-on-minification
答案 2 :(得分:0)
不同之处在于,当代码被放大时,传递的参数不应该更改为其他名称,并且进一步的代码变得正确,因为我们可能有构造函数注入函数和其他有用的东西,所以为了避免我们将参数作为数组项,即在字符串中,因此它们在放大时与参数匹配。
我有一个好人引用
当您缩小JavaScript时,JavaScript缩小器会替换名称 局部变量和名称较短的参数。然而, AngularJS使用控制器函数,工厂的参数名称, 服务和提供商决定将什么注入他们的工厂 功能。如果更改名称,AngularJS无法注入 正确的对象。
要使AngularJS代码缩小安全,您需要提供 要作为字符串注入的对象的名称。你将这些字符串包装成 一个数组以及需要注入值的函数。 这是一个AngularJS缩小安全依赖注入
你自己的例子:
app.controller('MyCtrl', ['$scope', '$http',
function ($scope, $http) {
//...
}
]);