Angular 11 特征模块循环依赖

Angular 11 Feature Module cyclic dependency

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

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

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

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

提前致谢保罗

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

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