Angular:获得"没有组件工厂"在延迟加载的组件

时间:2017-11-16 09:03:37

标签: angular lazy-loading angular-material2 mddialog angular5

当我尝试在ConfirmBoxComponent中打开“材料对话框”时,我收到以下错误。

找不到ConfirmBoxComponent的组件工厂。你有没有把它添加到@ NgModule.entryComponents? 我已经在entryComponents列表中添加了ConfirmBoxComponent

declarations: [
  ConfirmBoxComponent
],
exports: [ConfirmBoxComponent],
entryComponents: [
  ConfirmBoxComponent
],

包含ConfirmBoxComponent的模块通过延迟加载技术加载。

我使用的是最新版本的Angular和Material

" @ angular / core":" ^ 5.0.0",   " @ angular / material":" ^ 5.0.0-rc0"

2 个答案:

答案 0 :(得分:1)

在我的情况下,我将MatDialogModule导入到我的延迟加载的模块中,但仍然从根模块中使用MatDialog实例,因为MatDialog已注入到我自己的DialogService中,该服务在根模块中提供。当我从延迟加载的模块中使用正确的MatDialog实例时,没有错误。

答案 1 :(得分:0)

这是固定的。 我忘了在我的延迟加载模块中导入 MatDialogModule