Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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
如何在angularjs控制器中注入更多依赖项?_Angularjs - Fatal编程技术网

如何在angularjs控制器中注入更多依赖项?

如何在angularjs控制器中注入更多依赖项?,angularjs,Angularjs,有没有一种方法可以一次性注入这些依赖项,而不是将5个服务累积注入控制器 假设我的angular应用程序中有50多个服务/工厂如何将所有这些注入我的控制器?以上所有评论都很有价值。主要的一点是,如果您对控制器有50个依赖项,那么您需要重新考虑您的体系结构 也就是说,您已经要求提供注入依赖项的替代方法,因此这里有一个解决方案 使用这种机制,理论上可以注入任意数量的依赖项,然后通过控制器中的参数集合访问它们 这是个可怕的主意。 var app = angular.module("myApp", []

有没有一种方法可以一次性注入这些依赖项,而不是将5个服务累积注入控制器


假设我的angular应用程序中有50多个服务/工厂如何将所有这些注入我的控制器?

以上所有评论都很有价值。主要的一点是,如果您对控制器有50个依赖项,那么您需要重新考虑您的体系结构

也就是说,您已经要求提供注入依赖项的替代方法,因此这里有一个解决方案

使用这种机制,理论上可以注入任意数量的依赖项,然后通过控制器中的
参数
集合访问它们

这是个可怕的主意。

var app = angular.module("myApp", []);
app.factory("one", function() {});
app.factory("two", function() {});
app.factory("three", function() {});
app.factory("four", function() {});
app.factory("five", function() {});
app.controller("myController", function($scope, one, two, three, four, five)
{

});

这里有一个有效的例子:

你真的在每个控制器中使用50个服务吗?不,我使用的是一个控制器我同意@Claies,如果你在任何提供商中使用了大量注入,你可能需要重新考虑一些事情。这类似于我看到主干应用程序有这么大的依赖列表。你是说你只有一个页面(一个控制器),并且在这个页面上显示来自50多个不同服务的数据?那一定是一个非常繁忙的屏幕……有没有其他方法可以向单个控制器注入更多依赖项,而不是向控制器提供参数
var Controller = function () {
 console.log(arguments[0]) // $scope
};

Controller.$inject = ['$scope', 'one', 'two', 'three'];