Javascript 在角模中,为什么主体是最后一个数组元素?
这更像是一个架构问题 定义角度模块的最常见形式之一是:Javascript 在角模中,为什么主体是最后一个数组元素?,javascript,angularjs,Javascript,Angularjs,这更像是一个架构问题 定义角度模块的最常见形式之一是: angular.module('app', []) .controller('Ctrl', ['$scope', function Ctrl($scope) { //body... }]); 但是我觉得语法不是很直观。将依赖项列表放入如下数组中如何: 这样,整个数组将只包含字符串元素,每个元素都引用一个模块。数组逐个匹配函数参数。(有点像参数) 所以我的问题是,为什么角度设计师会选择这个惯例?从某种意义上说,它就是这样做的。您
angular.module('app', [])
.controller('Ctrl', ['$scope', function Ctrl($scope) {
//body...
}]);
但是我觉得语法不是很直观。将依赖项列表放入如下数组中如何:
这样,整个数组将只包含字符串元素,每个元素都引用一个模块。数组逐个匹配函数参数。(有点像参数
)
所以我的问题是,为什么角度设计师会选择这个惯例?从某种意义上说,它就是这样做的。您可以使用
$inject
执行此操作
function SomeCtrl ($scope) {
// do something with $scope
}
SomeCtrl.$inject = ['$scope'];
angular
.module('app', [])
.controller('SomeCtrl', SomeCtrl);
我不是这方面的专家,但我确实找到了一篇关于这个过程如何工作的好帖子,它可能有助于回答您的问题:谢谢您的回复。我知道
$inject
,但我想知道为什么它一开始就是这样设计的?我读过托德的链接。这更多的是关于如何而不是为什么。完全理解,我只是希望对这个问题有所了解。我会亲自在AngularJS IRC上发布。我会继续关注这篇文章,明天下午把它放在那里。一些在项目中工作的人经常躲在那里^ ^是的,无论如何我要+1这个,但是如果Angular团队的人详细阐述这个语法背后的想法,那就太好了?喜欢IRC的想法,但我的工作中没有它。只是把它贴在IRC上;明天我会再给你打电话。希望能收到团队成员的回音!
function SomeCtrl ($scope) {
// do something with $scope
}
SomeCtrl.$inject = ['$scope'];
angular
.module('app', [])
.controller('SomeCtrl', SomeCtrl);