问题描述
我需要以这种形式的Control修补来自Api的值
“。html”
`<p-dialog header="แก้ไขห้องพัก" [(visible)]="displayedit" [modal]=true [style]="{width: '30vw'}"><div class="row" [formGroup]="edtForm">
<input pInputText type="hidden" formControlName="id_room" [attr.disabled]="true">
<input pInputText type="hidden" formControlName="id_roomDetail" [attr.disabled]="true">
<input pInputText type="hidden" formControlName="homestayID" [attr.disabled]="true">
<div class="col-5 text-right">เลขที่ห้อง :</div>
<div class="col-7"><input pInputText type="text" formControlName="numRoom" [attr.disabled]="true"></div>
<div class="col-5 text-right">Name :</div>
<div class="col-7">
<p-dropdown id="homestayName" formControlName="homestayName" [options]="homestays"></p-dropdown>
</div>
</p-dialog>`
“。ts”
this.roomService.queryRoomById(id).subscribe((res) => {
const data = {
...res
};
this.edtForm.patchValue(data);
});
服务是
queryRoomById(id: string) {
return this.http.get<Rooms>('http://localhost/taladnoi/api/api_getRoomAdmin.PHP?id=' + id);
}
解决方法
我们不知道您的API返回什么,但是表单上的补丁只是更新表单部分的值。
我看到您有几个表单控件:
- id_room
- id_roomDetail
- 寄宿家庭ID
- numRoom
- homestayName
假设您要更新numRoom
字段,您将执行类似的操作:
this.formName.pathValue({ numRoom: newValue });