Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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 在AngularJS服务中构造依赖关系_Javascript_Angularjs - Fatal编程技术网

Javascript 在AngularJS服务中构造依赖关系

Javascript 在AngularJS服务中构造依赖关系,javascript,angularjs,Javascript,Angularjs,我想知道最好的办法是什么。我有一个控制器,它注入了两个额外的参数:ConfigService和DataAccess。ConfigService返回指令的配置对象。配置对象存储在服务内部的JS变量中。ConfigService返回对象的“data”属性是使用DataAccess获取的 因此,我的控制器依赖于ConfigService的返回对象为其提供一些配置数据。配置服务依赖于数据访问 让我的控制器两者都依赖是正确的,还是让我的ConfigService依赖于DataAccess,然后让我的控制器

我想知道最好的办法是什么。我有一个控制器,它注入了两个额外的参数:
ConfigService
DataAccess
。ConfigService返回指令的配置对象。配置对象存储在服务内部的JS变量中。ConfigService返回对象的“data”属性是使用
DataAccess
获取的

因此,我的控制器依赖于
ConfigService
的返回对象为其提供一些配置数据。配置服务依赖于数据访问

让我的控制器两者都依赖是正确的,还是让我的ConfigService依赖于DataAccess,然后让我的控制器只依赖于ConfigService?

Misko way在开始使用AngularJS之前编写的《代码审阅者指南》(Code Reviewers Guide())实际上在这方面有一些很好的提示

您所提到的内容可能属于缺陷2,即挖掘合作者。简单的经验法则是,如果需要从控制器中的ConfigService访问变量或密钥,则应将ConfigService注入控制器。您不应该通过DataAccess服务访问它。另一方面,如果您不需要直接从ConfigService获取任何信息,则不要将其注入


反之亦然——如果您的控制器确实不需要DataAccess(正如您所说的那样),那么就没有必要将DataAccess注入控制器。让ConfigService来处理它,让控制器来处理完全加载的ConfigService。

我认为配置不应该依赖于任何东西,除了一些其他配置。数据访问可能取决于配置。但是是的,你应该同时声明这两个,除非你计划通过另一个传递一个,这将首先挫败分离的目的。