У меня есть компонент Angular, который определяет FormGroup
, который имеет вложенный FormGroup
в качестве одного из элементов управления.
Дочерний элемент FormGroup
передается как параметр @Input
дочернему компоненту, а для некоторых элементов управления внутри дочернего FormGroup
есть валидаторы.
По какой-то причине свойство valid
parent FormGroup
обновляется только после того, как я обновляю значения в дочернем компоненте, а затем произвольно изменяю один из входов для родительского FormGroup
(например, добавляю дополнительное пространство в вход).
Настройка довольно сложна (валидаторы добавляются или удаляются из элементов управления дочерней FormGroup в зависимости от определенных условий, вероятно, поэтому проверка не происходит автоматически).
Как я могу вручную активировать родительский FormGroup
для повторной проверки, как только что-либо в дочернем FormGroup
изменится? Я пробовал это в дочернем компоненте:
ngOnInit()
this.myForm.valueChanges.subscribe(val => {
this.myForm.updateValueAndValidity({onlySelf: false, emitEvent: true})
});
Это должно запускать повторную проверку child
FormGroup всякий раз, когда изменяется любой из ее входных параметров, и транслировать событие в компонент parent
, который должен запускать повторную проверку родительского FormGroup
. Однако у меня возникает какая-то ошибка переполнения стека, так как это приводит к бесконечному циклу.
Как я могу инициировать автоматическую повторную проверку родителя FormGroup
?