Угловое касание / изменение статуса формы - PullRequest
0 голосов
/ 11 октября 2019

Мне нужно сделать мою форму touched: false dirty: false после того, как я сохраню ее значения и назначу в соответствующих местах новые идентификаторы.

Форма имеет многоуровневую структуру и приблизительную следующую структуру:

FormGroup
-- FormControl
-- FormControl
-- FormArray
  -- FormGroup
...

Я рекурсивно запускаю сохранение из-за нестабильной формы формы.

После сохранения одного FormGroup из FormArray я создаю group.markAsUntouched({ onlySelf: !hasChildren }) и group.markAsPristine({ onlySelf: !hasChildren }).

Однако, после этого я получаю «измененный», «грязный» FormArray «нетронутой» «неизменной» FormGroups.

Я пробовал также сделать .parent неизменным и нетронутым, но это привело к «неизменному» «нетронутому»"FormArray в" изменил "" грязный "FormGroup (родитель).

Я никогда не знаю, насколько я глубоко и могу ли пометить родителя как нетронутого и нетронутого, потому что я сохраняю только те FormGroups, которые являются" грязными "и "изменился". Также я проверяю, была ли корневая группа FormGroup изменена и загрязнена перед закрытием карты, поэтому очень важно сохранить реальные значения.

В документах сказано, что markAsUntouched и markAsPristine пересчитывают соответствующие значения родительского объекта AbstractControl, однако этоне происходит.

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

Сброс формы путем вызова метода сброса.

form.reset();
0 голосов
/ 11 октября 2019

Вы можете указать текущее значение в методе сброса https://angular.io/api/forms/FormGroup#reset

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...