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,我一直在尝试优化如何在一个大小合理的应用程序中管理模块,并且遇到了一个可能的依赖性问题 据我所知,一个模块可以访问另一个模块中的服务,即使没有直接依赖关系 假设我们有一个app模块,它依赖于两个模块moduleA和moduleB。moduleB应该能够访问moduleA的依赖项,这是否正确?这就是我摆好的小提琴中出现的情况- 对我来说,这意味着,如果moduleA被更改,可能会影响moduleB,即使这两个模块不是依赖项 我可能走错了方向或者误解了什么。或者这可能是角度模块系统的一个限制 编辑:

我一直在尝试优化如何在一个大小合理的应用程序中管理模块,并且遇到了一个可能的依赖性问题

据我所知,一个模块可以访问另一个模块中的服务,即使没有直接依赖关系

假设我们有一个
app
模块,它依赖于两个模块
moduleA
moduleB
moduleB
应该能够访问
moduleA
的依赖项,这是否正确?这就是我摆好的小提琴中出现的情况-

对我来说,这意味着,如果
moduleA
被更改,可能会影响
moduleB
,即使这两个模块不是依赖项

我可能走错了方向或者误解了什么。或者这可能是角度模块系统的一个限制


编辑:Angular中有一个关于命名冲突的类似模块问题-我认为这是一个稍微不同的问题,因为除了命名冲突之外,还有一个模块在不应该使用时可用的问题。

两个模块都应该独立运行,不必访问其他依赖项。

您如何知道如何在
moduleB
中使用
子模块属性
?从理论上讲,模块应该彼此独立开发。@如果模块A和B恰好依赖于不同模块中具有相同名称的工厂,该怎么办。模块系统的这种行为似乎非常奇怪和草率。它本质上是在依赖链中的回流。@ Exchange药丸合理地说,包括两个模块作为第三个模块中的依赖项,不应该导致它们将它们的依赖关系集合在一起(并且可能覆盖彼此),但显然这就是实际发生的。请参阅:@ExplosionPills,谢谢您的链接。我认为这个问题可以看作是那个问题的重复。To OP:是的,正如对其他问题的回答所述,服务等的名称确实都集中在一个依赖关系网络中,如果您有理由相信这可能会成为一个问题,建议的解决方案是在服务名称上使用前缀,为它们命名名称空间。否,他们不需要访问彼此的依赖关系,但Angular使之能够访问彼此的依赖关系(甚至覆盖它们)。这就是问题所在。是的,我的问题是其中一个依赖项是一个util服务,我希望它更好。它有几个不同模块中使用的方法,这就是我的问题所在。目前,它是主模块上的一项服务。