无法将数据传递到垫对话框

Can't pass data to mat dialog

我有一个问题,我需要将对象传递给 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                
              }

感谢任何帮助

你的错误是 @Inject(MAT_DIALOG_DATA) private person: 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);                     
              }