【发布时间】:2020-01-09 21:50:34
【问题描述】:
在我的 Angular 应用程序中,我有一个名为 MaterialModule 的模块,其中包含以下内容:
imports: [
MatDialogModule,
...
],
exports: [
MatDialogModule,
...
]
它被导出到一个名为SharedModule的模块中:
@NgModule({
imports: [
MaterialModule,
...
],
exports: [
MaterialModule,
...
]
})
export class SharedModule { }
我想从我的一个延迟加载组件中显示一个对话框,所以在我的延迟加载模块中我导入这个SharedModule 并将对话框组件添加为一个入口组件:
@NgModule({
declarations: [
MyLazyLoadedComponent,
MyDialogComponent,
...
],
imports: [
CommonModule,
SharedModule,
...
],
entryComponents: [MyDialogComponent]
})
export class MyLazyLoadedModule { }
但每当我尝试从MyLazyLoadedComponent 打开对话框时,我都会收到以下错误消息:
未找到 MyDialogComponent 的组件工厂。你添加到 @NgModule.entryComponents?
从非延迟加载的组件中打开对话框可以正常工作。
对于我的配置可能出现的问题,我非常感谢任何建议。
【问题讨论】:
-
您正试图在另一个模块中打开对话框,以便该模块需要入口组件。您需要将其导出到 sharedmodule 中并放入您正在打开对话框的模块的 entrycomponent
标签: angular