Angular:如何检查某些控件是否存在于表单中

时间:2018-06-29 08:24:20

标签: angular angular6 angular-forms angular-formbuilder

下面是我从服务获得响应的代码。在这里,我正在获取员工列表。

我需要根据服务的响应动态地绑定表单控件,我的服务返回的字段(雇员ID,名称,部门等)比表单控件多。如何跳过那些不在表单控件中使用的内容?

this._employeeService.getEmployeeById(this.employeeId).subscribe((res: Response) => {
        debugger;
        this.employeeForm.get('FileUploader').setValue(null);        
        //this.employeeForm.setValue(res);
        for (const field in res) {
          this.employeeForm.controls[field].setValue(res[field]);
        }
      }); 

this.employeeForm = this._fb.group({
      EmployeeId: 0,
      Name: ''});

2 个答案:

答案 0 :(得分:1)

您可以使用patchValue作为设置值

this.employeeForm.patchValue(res);

答案 1 :(得分:1)

您可以使用FormGroup类的 get 方法。像这样在getEmployeeById回调中更改迭代器:

for (const field in res) {
  const formControl = this.employeeForm.get(field);

  if (formControl) {
     formControl.setValue(res[field]);
  }
}

来源:https://angular.io/api/forms/FormGroup