角度:如何在不同模块中的不同组件之间共享组件,反之亦然



如何在不同模块中的不同组件之间共享组件 与共享组件共享不同模块中的组件。

我有四个模块。模块 A 包含组件 A,模块 B 包含组件 B,模块 C 包含组件 C,模块 D 包含组件 D.模块 B、C 和 D 各自导入模块 A 以访问组件 A。但是有一个问题,组件 A 需要使用它的相应组件。例如,组件 A 在组件 B 使用时需要组件 B。

有没有办法在不使模块 B、C 和 D 各自拥有自己的组件 A 副本的情况下使其工作?

这是一个常见的要求。在这里让我稍微解释一下。

Angular 允许在一个且只能一个模块中声明一个组件。如果另一个模块需要该组件,则必须将该模块导入到需要该组件的模块的导入数组中。

现在,如果组件 A 在模块 A 中,组件 B 在模块 B 中,并且两者都需要彼此,并且您在模块 B 中导入模块 A,在模块 A中导入模块B,那么您就陷入了循环引用陷阱。

若要解决此问题,必须引入一个新模块,并在此新模块中声明所有此类组件,并让此新模块导入到需要组件的模块中。

假设我的这个新模块名称是LoaderSharedModule,它看起来像这样

@NgModule({
imports: [
],
declarations: [Component1, Component2, Component3],
exports: [Component1, Component2, Component3]
})
export class LoaderSharedModule { }

模块将导入此模块以开始使用组件 1,2,3.. 像这样

@NgModule({
imports: [
LoaderSharedModule
],
})
export class Module1 { }
@NgModule({
imports: [
LoaderSharedModule
],
})
export class Module2 { }
@NgModule({
imports: [
LoaderSharedModule
],
})
export class Module3 { }

谢谢。

最新更新