我对角度来说是全新的。我看到了两种将$scope
传递给角度控制器的方法:
app.controller("myCtrl", function($scope) {
...
});
app.controller('myCtrl', ['$scope', function($scope) {
...
}]);
这两者有什么区别?
答案 0 :(得分:1)
所有" in-angular"代码显然是客户端评估 - 这意味着当你编写一个包含某些东西的模块(比如说其他模块)时,实际包括在浏览器中执行javascript时发生。
因此,当您将$ scope传递给函数时,angular会将其评估为实际的$ scope对象,因为它将其识别为指示所述对象的方式。
但是如果你在你的.js文件中使用某种缩小器,那么发生的其他事情就是变量名称的缩小,而且从纯粹的JS观点看,你看起来像是在传递名为' $的变量范围'进入匿名函数,它将被缩小到更短的时间。
这就是问题 - 角度需要看到它是一个$范围,但在缩小之后它也可以被命名为' a'或类似的东西... BOOM整个完美的计划毁了。 :'(
通过允许传递列表代替简单函数(问题中的第二个符号)并使角度理解列表的每个后续元素是包含" angularish"的字符串来解决问题。函数的每个后续(以及现在缩小的)参数的名称,该参数应该是所述列表的最后一个元素。
显然,明确的字符串不能简单地缩小而不会失去其含义 - 所以他们不要:)
问题解决了!
万岁角度