Angular : Getting "No component factory" error while opening a Material Dialog in lazy loaded Component

标签 angular lazy-loading angular-material2 mddialog angular5

当我尝试在ConfirmBoxComponent中打开 Material 对话框时,出现以下错误。

没有找到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”

最佳答案

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

关于 Angular : Getting "No component factory" error while opening a Material Dialog in lazy loaded Component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47325465/

相关文章:

node.js - karma 测试通过,但 npm 测试给出错误

c# - IEnumerable 和 LINQ 上的未知行为

javascript - <垫单选按钮> : No value accessor

Angular Material 垫表定义组件中的可重用列

angular2 等到 if 条件下的 observable 完成

Angular 2改变元素的位置

angular - PrimeNg - 使动态创建的对话框可拖动

reactjs - React 中的延迟加载路由与 Typescript AsyncComponent

c# - 延迟加载 - 什么是最好的方法?

angular-material2 - 如何清除角 Material 垫错误的验证错误