【问题标题】:Angular 11 Feature Module cyclic dependencyAngular 11 功能模块循环依赖
【发布时间】:2021-04-19 21:48:40
【问题描述】:

我知道这个问题已经被问过很多次了,但是除了删除模块并提前加载所有内容之外,我还没有找到任何解决该问题的方法。

一年多前启动了一个非常复杂的 Angular 应用程序后,我很早就决定采用 Angular 的首选方式并使用功能模块。这就是我将应用程序分解为功能模块的地方,其中每个功能将处理该功能的应用程序的特定区域并利用延迟加载。假设功能 a 为应用程序中的特定域构建了搜索和所有的 crud 功能。然后是功能 B,其设计方式相同。现在我遇到了功能之间的循环依赖关系,即功能 A 需要使用功能 B 中的组件,而功能 B 需要使用功能 A 中的组件。

这会在使用 ivy 编译器进行编译时导致循环依赖。我可以通过将 AOT 设置为 false 来编译它,但这似乎不是一个可行的答案。没有放弃模块,我看不到太多答案。

我尝试了一个通用模块,它导出所有模块,但与通用导入模块 A 和模块 B 的问题相同,然后模块 A 导入通用模块。有人对如何解决这个问题有建议吗?

提前感谢保罗

【问题讨论】:

    标签: angular angular2-aot angular-ivy


    【解决方案1】:

    如果功能 A 和 B 都需要某个组件,则应将其放置在“共享”模块中。将所有通用组件放在该共享模块中并导出它们。然后在模块 A 和 B 中导入该模块。

    基本上,您在公共模块上是正确的,但该模块中的组件不应从任何其他模块导入。

    【讨论】:

    • 我想我误解了大多数其他帖子,即“将其他需要使用的所有组件放入公共模块中”。我已经阅读了关于模块的 Angular 文档,但直到现在我仍然没有得到答案。如果你愿意的话,更小的几乎子模块就是答案。通过将功能分解为更小的模块,我能够克服这个问题。
    猜你喜欢
    • 2017-10-09
    • 2019-09-09
    • 2014-04-28
    • 1970-01-01
    • 2019-12-19
    • 2018-03-17
    • 2017-10-27
    • 2021-09-18
    • 2014-04-15
    相关资源
    最近更新 更多