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