这更像是一个架构问题。
定义角度模块的最常见形式之一是:
angular.module('app', [])
.controller('Ctrl', ['$scope', function Ctrl($scope) {
//body...
}]);
但我发现语法非常直观。如何在AMD数组中包含依赖项列表:
angular.module('app', [])
.controller('Ctrl', ['$scope'],
function Ctrl($scope) {
//body...
});
这样整个数组将只包含字符串元素,每个元素都引用一个模块。该数组逐个匹配函数参数。 (有点像arguments
)。
所以我的问题是为什么Angular设计师会参加这个会议?
答案 0 :(得分:3)
从某种意义上说,这种做法就是这样。您可以使用$inject
。
function SomeCtrl ($scope) {
// do something with $scope
}
SomeCtrl.$inject = ['$scope'];
angular
.module('app', [])
.controller('SomeCtrl', SomeCtrl);
我不是这方面的专家,但我确实发现了一个关于这个过程如何运作的好帖子,它可能有助于回答你的问题:http://toddmotto.com/angular-js-dependency-injection-annotation-process/