Мне нужно сделать мою форму 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, однако этоне происходит.