Как убедиться, что angular реактивная форма setValue / patchvalue завершена - PullRequest
0 голосов
/ 03 марта 2020

если я устанавливаю значение формы, как показано ниже

this.loadBasicForm.setValue({
       loadDirection,
       loadSubDirection,
       multiPointType,
       truckLoadType
});

Я должен использовать setTimeout, чтобы убедиться, что значение обновляется.

setTimeout(() => {
 //do some other action with the changed values.
}

Есть ли лучший способ сделать это, кроме использования setTimeout.

1 Ответ

0 голосов
/ 03 марта 2020

Angular FormArray отслеживает значение и состояние достоверности массива экземпляров FormControl, FormGroup или FormArray. setValue () и patchValue () являются методами класса FormArray.

setValue (): устанавливает значение FormArray. Нам нужно передать массив, который должен соответствовать структуре элемента управления. Если наш массив не соответствует структуре элемента управления, setValue () выдаст ошибку.

Итак, если вы не столкнетесь с какой-либо проблемой setValue (), чем было выполнено выполнение.

patchValue (): исправляет значение FormArray. Нам нужно передать массив, который должен соответствовать структуре элемента управления. Если массив, который мы передаем, не полностью соответствует структуре элемента управления, то patchValue () исправит только те поля, которые соответствуют структуре элемента управления, а остальные будут такими, как есть.

Итак , если ваши поля не совпадают, это проблема, которую вы сделали.

...