Реактивные формы patchValue () в цикле For - PullRequest
0 голосов
/ 21 ноября 2018

Следующий пример кода:

model={name: "D100"
value: "Dying"};

   for (let key in model) {
            if(this.divisionForm.controls.hasOwnProperty(key)) {
                let value = divisionModel[key];
                this.form.patchValue({
                    key: value
                });
            }
        }
  • Есть ли способ достичь объекта цикла и вставить пару значений ключа в patchValue ()
  • У меня не может быть значений для установки в форме. Я могу добиться этого, вручную добавив setValue () и используя деструктуризацию, чтобы получить объекты и набор, который приводит к очень длинному коду в больших формах.

Iв течение долгого времени помогите мне.Заранее спасибо.

1 Ответ

0 голосов
/ 21 ноября 2018

Просто распространите значение вашей формы и переопределите свойства, которые вы хотите изменить.

В качестве sidenote, patchValue должен сохранять значения ключей, которые вы не предоставляете, например, если дать один ключ, все остальные ключи будут иметь свои действительные значения.

Вот блик стека: https://stackblitz.com/edit/angular-xlxcic?file=src%2Fapp%2Fapp.component.ts

  constructor() {
    const form = new FormGroup({
      name: new FormControl(''),
      surname: new FormControl('')
    });

    form.patchValue({
      ...form.value,
      name: 'name of the user'
    });

    form.patchValue({
      surname: 'surname of the user, with name kept'
    });

    console.log(form.value);
  }
...