如何将组件作为参数传递到Angular Material对话框?

时间:2018-02-22 11:25:14

标签: angular angular-material

我尝试配置我的openDialog()方法,将组件作为参数传递。我的目标是为不同的dialogComponents获取单个方法,只需在从服务调用方法时更改参数。

服务:

openDialog(component: ComponentType<any>): void {
    const dialogRef = this.dialog.open(component, {
      width: '500px'
    });

组件:

openDeleteDialog(PopupPostComponent) {
    this.userService.openDialog(PopupPostComponent);
  }

对话框弹出但空白,出现以下错误: 找不到未定义的组件工厂。你有没有把它添加到@ NgModule.entryComponents? 我的PopupPostComponent已添加到entryComponents中。 我的应用程序正常工作,直接在openDialog()方法中声明PopupPostComponent。 我在尝试一种不可能的方式吗?

1 个答案:

答案 0 :(得分:0)

在app.module.ts文件中,尝试将弹出组件的名称添加到entryComponents数组中。它在@NgModule函数中找到。确保也导入弹出组件。那应该可以解决这个错误。