我无法找到如何将未定义的对象转换为 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 对象?
尝试
result as unknown as Patient