Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在角模中,为什么主体是最后一个数组元素?_Javascript_Angularjs - Fatal编程技术网

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);