首页 > 解决方案 > 在 Angular 材料中有条件地打开模态

问题描述

我正在使用 Angular Material Dialog 打开一个模态。在打开的模式中,我很少有组件,每次都应根据条件加载不同的组件。问题是,我试图将.open()组件名称作为字符串传递给该方法,但它给出了错误。

例如,让我们说这个方法:

openDialog(): void {
const dialogRef = this.dialog.open(DialogOverviewExampleDialog, {
  width: '250px',
});

我试图做类似的事情:

let myComp: string = 'DialogOverviewExampleDialog'; 

openDialog(): void {
  const dialogRef = this.dialog.open(this.myComp, {
  width: '250px',
});

但它给出了错误。它只是没有将变量作为函数的参数。

我需要将名称作为字符串传递的原因,因此我可以创建一个条件,为每个条件分配应该在模态中打开的组件,然后只需将.open()带有要加载的期望组件名称的变量传递给方法

怎么了?

谢谢。

标签: angularangular-material

解决方案


DialogOverviewExampleDialog 是一个类。所以修改你的代码

let myComp: any = DialogOverviewExampleDialog; 

openDialog(): void {
  const dialogRef = this.dialog.open(this.myComp, {
  width: '250px',
});

推荐阅读