控制器参数的区别是什么,一个是在数组中包装服务和返回函数,
似乎类型1遵循DRY原则。
我没有理解以下2种语法之间的区别?
app.controller("UserCtrl", ['$scope', '$http', '$resource', 'Users', 'User', '$location', function($scope, $http, $resource, Users, User, $location) {
....
}]);
app.controller("UserCtrl", function($scope, $http, $resource, Users, User, $location) { ....
});
答案 0 :(得分:1)
差异是Angular如何找到依赖项。
使用类型1,Angular使用字符串查找依赖项,因此您可以拥有自己的参数名称。
即
app.controller("UserCtrl", ['$scope', '$http', '$resource', 'Users', 'User', '$location', function(s, h, r, us, u, l) {
....
}]);
使用类型2,Angular使用参数名称来查找依赖项,您不能使用您喜欢的任何名称,否则,Angular可能无法找到它。
更多关于https://docs.angularjs.org/guide/di
依赖关系注释
Angular通过注入器调用某些功能(如服务工厂和控制器)。您需要注释这些函数,以便注入器知道要注入函数的服务。有三种方法可以使用服务名称信息注释代码: