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服务,我希望它更好。它有几个不同模块中使用的方法,这就是我的问题所在。目前,它是主模块上的一项服务。