我有一个循环依赖问题,我看不出如何解决。我有一个名为ItemDetailPageModule
的页面模块,可以像这样导入SharedModule
:
@NgModule({
imports: [
IonicPageModule.forChild(ItemDetailPageComponent),
IonicImageViewerModule,
SharedModule
],
declarations: [
ItemDetailPageComponent,
],
entryComponents: [
ItemDetailPageComponent,
],
exports: [
ItemDetailPageComponent
]
})
export class ItemDetailPageModule { }
我还有SharedModule
导出名为ItemCardComponent
的组件,该组件依赖于ItemDetailPageModule
将页面组件(ItemDetailPageComponent
)推送到导航堆栈:
@NgModule({
imports: [
IonicModule,
AuthenticationModalModule,
ItemDetailPageModule
],
declarations: [
ItemCardComponent,
AddCardFormComponent
],
exports: [
ItemCardComponent,
AddCardFormComponent
]
})
export class SharedModule { }
显然,这会产生循环依赖。我无法弄清楚如何构造代码以避免这种情况。关于如何重构代码以避免循环依赖的任何想法?
答案 0 :(得分:0)
您应该使用延迟加载,并不要求您在需要调用的地方声明ItemDetailPageModule。 您只需要像这样导航到它:
this.navCtrl.push("ItemDetailPageModule");
请注意,push方法将Module的名称作为字符串。
这样,您可以将模块彼此分开。