我正在使用Angular Material对话框打开模态。在打开的模式中,我很少有组件,每次都根据条件加载不同的组件。问题是,我试图将组件名称作为字符串传递给.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()
方法与要加载的期望组件的名称
怎么了?
谢谢。
答案 0 :(得分:2)
DialogOverviewExampleDialog是一个类。因此,将您的代码修改为
let myComp: any = DialogOverviewExampleDialog;
openDialog(): void {
const dialogRef = this.dialog.open(this.myComp, {
width: '250px',
});
答案 1 :(得分:0)
尝试一下:
let myComp : DialogOverviewExampleDialog