我现在正在使用角度一段时间,当我阅读示例或教程时,我总是看到他们如何将服务注入控制器的两种方式。
以下两种方法之间的主要区别是什么?
1
.controller('MyController', ['myService', function(myService) {
}]);
2
.controller('MyController', function(myService) {
});
我在控制器JS文件的第一行包含服务:
angular.module('myApp.controllers', ['myApp.services']);
答案 0 :(得分:1)
第一种风格是officially recommended。
但第二种用法也有其自身的优势:
这种方法的一个优点是没有名称数组可以与函数参数保持同步。您还可以自由地重新排序依赖项。
您还可以使用gulp-ng-annotate
等工具修复minify问题由于两种用法都由AngularJS描述和支持,我认为你可以自由选择其中任何一种,只记得在整个项目中保留它。
答案 1 :(得分:0)
您必须始终考虑将您的实施用于生产。 第一种方法是正确的,因为您可能只在 myController 中使用 myService ,严格注入是一个很好的选择。
第二种方法不利于维护和易读性。为什么要在myApp中注入myApp.services的所有服务?
最后,第二种方法可能会在构建阶段(minify)上造成一些错误。
享受AngularJS。