0

我有一个问题,我需要将一个对象传递给一个 mat-dialog。当我查询对象的值时,它会显示其所有属性,当我需要访问属性时会出现问题,它们显示为未定义。

主要成分:

EditDialog(nameInput: String, emailInput: String) {
    const dialogInstance = this.dialog.open(EditDialogComponent,
      {
        width: "40%",
        disableClose: true,
        data: { person: {name: nameInput, email: emailInput } }
      }      
      );
  }

对话框组件:

constructor(private _formBuilder: FormBuilder,
            @Inject(MAT_DIALOG_DATA) private person: any
            ) { 
                console.log(this.person); <-- show object data
                console.log(this.person.name); <-- show undefined                
              }

感谢任何帮助

4

1 回答 1

1

您的错误是@Inject(MAT_DIALOG_DATA) 私有人员:不应将 Person 声明为 Person 对象。

相反,您必须执行以下操作

constructor(private _formBuilder: FormBuilder,
            @Inject(MAT_DIALOG_DATA) private _data: any
            ) { 
               //like this you'll get the person name ;)
                console.log(this._data.person.name);                     
              }
于 2021-08-21T22:33:47.280 回答