首页 > 解决方案 > 在角度中使用 patchValue 进行选择是行不通的

问题描述

我正在使用以下代码以反应形式将值修补到字段:

editPat(patient: Patient) {
    this.regForm.patchValue({
        _id: patient._id,
        firstName: patient.firstName,
        lastName: patient.lastName,
        disease: patient.disease,
        department: patient.department,
        doctor: patient.doctor
    });
}

在此函数中departmentdoctor表单控件包含选择字段,并且值不会出现在 select 中。我在这里分配给 formcontrol 的值是选项的值..

问题我如何分配价值以通过选择patchValue。请帮助我


HTML:

<div class="form-group ">
    <label for="department">Department</label>
    <select class="form-control" formControlName="department">
        <option *ngFor="let department of departments"
                value="{{ department._id }}">{{ department.Name }}</option>
    </select>
</div>

实际上,当我尝试修补值(用于更新选项)时,我正在使用此代码并将数据保存在 db(即 id)中后,其他字段有效,但对于 select 它不起作用..

标签: angular

解决方案


您可以尝试另一种方法来修补值,
更新代码
HTML 文件

<div class="form-group ">
    <label for="department">Department</label>
    <select (change)="patchValue($event.target.value)" class="form-control" formControlName="department">
        <option *ngFor="let department of departments"
                value="{{ department._id }}">{{ department.Name }}</option>
    </select>
</div>

.ts 文件

patchValue(value){
    this.regForm.patchValue({
        department : value
    });
    this.regForm.get('department').updateValueAndValidity();
    console.log(this.regForm.value);
}

检查我更新的代码。


推荐阅读