我有一个定义 FormGroup
的 Angular 组件,它有一个嵌套的 FormGroup
作为它的控件之一。
子 FormGroup
作为 @Input
参数传递给子 component,并且在 child FormGroup
.
出于某种原因,parent FormGroup
的 valid
属性仅在我更新子组件中的值后更新,然后随机生成一个更改为父级 FormGroup
的输入之一(例如向输入添加额外的空格)。
设置相当复杂(验证器根据特定条件在 child FormGroup 上的控件中添加或删除,这可能是验证未自动发生的原因)。
我如何手动触发父 FormGroup
在子 FormGroup
中的任何内容发生变化时立即重新验证?我在 child 组件中试过这个:
ngOnInit()
this.myForm.valueChanges.subscribe(val => {
this.myForm.updateValueAndValidity({onlySelf: false, emitEvent: true})
});
这应该会在其任何输入发生变化时触发 child
FormGroup 的重新验证,并将事件广播到 parent
组件,这应该触发父级 FormGroup
的重新验证。不过,我遇到了某种堆栈溢出错误,因为这会导致无限循环。
如何触发父 FormGroup
自动重新验证?
最佳答案
this.FormGroup.updateValueAndValidity();
updateValueAndValidity()
- 这是 FormGroup
关于javascript - Angular 响应式表单 - 当子 FormGroup 更改时手动触发父 FormGroup 的验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50362888/