Angular: Как проверить, существует ли какой-либо элемент управления в форме или нет - PullRequest
0 голосов
/ 29 июня 2018

Ниже приведен мой код для получения ответа от службы. Здесь я получаю список сотрудников.

Мне нужно динамически привязывать элементы управления формы на основе ответа службы, моя служба возвращает больше полей (EmployeeId, Name, Department и т. Д.), Чем в форме есть элементы управления. Как пропустить те, которые не используются в контроле формы?

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 голосов
/ 02 июля 2018

Вы можете использовать метод get класса FormGroup. Измените свой итератор в обратном вызове getEmployeeById, например:

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

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

Источник: https://angular.io/api/forms/FormGroup

0 голосов
/ 29 июня 2018

вы можете использовать patchValue для установленного значения

this.employeeForm.patchValue(res);
...