如何从任何对象中提取数据或将其转换为特定类型

问题描述 投票:0回答:1

我无法找到如何将未定义的对象转换为 Angular TS 中已定义的对象。 我有一个表格,可以在模式窗口的帮助下修改其内容。 该行的数据填充模态窗口的字段,进行更改后,发送回的对象是 Pacient 类型:

constructor(
    public dialogRef: MatDialogRef<pacientModifier>,
    @Inject(MAT_DIALOG_DATA) public data: PacientModif) {
      this.data={...data};        
    }

  onNoClick(): void {     
    this.dialogRef.close({data:this.data});
  }

但是在dialogRef中,返回的结果是未定义的类型

 dialogRef.afterClosed().subscribe(result => {
          this.updateRowData(result);
        });

返回的结果是一个未定义的对象。包含 Pacient 对象成员的对象。

耐心的对象:

export class Pacient {
id = "";
name = " ";
pacient_Condition =" ";
birth_Date=" ";
}

模态返回后返回的对象:

data: Object { id: " ", name: " ", pacient_Condition: " ", birth_Date:"" }

我尝试使用 result as Pacient 或使用 Object.values(result)

患者页面模板:

<ng-container matColumnDef="actions">
      <mat-header-cell *matHeaderCellDef>Actions</mat-header-cell>
      <mat-cell *matCellDef="let element">
        <button md-button (click)="openDialog(element)">Edit</button>
      </mat-cell>
    </ng-container>

打开对话框方法:

openDialog(row:Pacient): void {
        const dialogRef = this._dialog.open(pacientModifier, {
          width: '250px',
          data: row
        });
        dialogRef.afterClosed().subscribe(result => {
          console.log(result);
          this.updateRowData(result);
        });
      }

有没有办法通过成员(Id、名称等)访问数据成员或将其直接转换为 Pacient 对象?

angular typescript
1个回答
0
投票

尝试

result as unknown as Patient

© www.soinside.com 2019 - 2024. All rights reserved.