如何使用FormControl修补值

问题描述

我需要以这种形式的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 });