0

このダイアログは共有されているため、さまざまな場合に使用する必要があります。私がしようとしているのは、コンポーネントがダイアログを使用するときに異なるデータを受け取ることです。

最初のデータは正しく受信できるのですが、「data2」は「data1」と同じです...「@Inject(MAT_DIALOG_DATA)」を2つ使用することはできますか?

ダイアログctor(私が試したこと)

constructor(public dialogRef: MatDialogRef<DialogComponent>,
    @Inject(MAT_DIALOG_DATA) public data1: ImportType[],
    @Inject(MAT_DIALOG_DATA) public data2: string[]) {
    this.imports = data1;
    this.fieldsToBeEdited = data2;
}

Mat-dialog 設定ファイル

export class DialogConfig<D = any> implements MatDialogConfig {
    disableClose?: boolean;
    width?: string;
    height?: string;
    data1?: D | null;
    data2?: D | null;

    constructor(data1: any, data2?: string[]) {
        this.data1= data;
        this.data2= data2;
        this.disableClose = true;
        this.width = '40%';
        this.height = '60%';
    }
}

Open dialog メソッド

 openDialog() {
    const dialogConfig = new DialogConfig(this.types, this.data);

    this.dialogConfig.open(DialogComponent, dialogConfig);
  }
4

1 に答える 1