【发布时间】:2018-05-16 05:15:18
【问题描述】:
我有一个 Angular 组件,它定义了一个 FormGroup,它有一个嵌套的 FormGroup 作为它的控件之一。
子FormGroup 作为@Input 参数传递给子组件,子FormGroup 内的某些控件上有验证器。
出于某种原因,父级 FormGroup 的 valid 属性仅在我更新子组件中的值时更新,然后随机更改父级@ 的输入之一987654328@ (例如在输入中添加额外的空格)。
设置相当复杂(根据特定条件从 child FormGroup 的控件中添加或删除验证器,这可能是验证没有自动进行的原因。
如何在子 FormGroup 中的任何内容发生变化时手动触发父 FormGroup 重新验证?我在 child 组件中试过这个:
ngOnInit()
this.myForm.valueChanges.subscribe(val => {
this.myForm.updateValueAndValidity({onlySelf: false, emitEvent: true})
});
这应该会触发child FormGroup 的任何输入更改时的重新验证,并将事件广播到parent 组件,这应该会触发父FormGroup 的重新验证。我得到了某种堆栈溢出错误,因为这会导致无限循环。
如何触发父FormGroup自动重新验证?
【问题讨论】:
标签: javascript angular angular-reactive-forms angular-validation