javascript - Angular 响应式表单 - 当子 FormGroup 更改时手动触发父 FormGroup 的验证

标签 javascript angular angular-reactive-forms angular-validation

我有一个定义 FormGroup 的 Angular 组件,它有一个嵌套的 FormGroup 作为它的控件之一。

FormGroup 作为 @Input 参数传递给子 component,并且在 child FormGroup.

出于某种原因,parent FormGroupvalid 属性仅在我更新子组件中的值后更新,然后随机生成一个更改为父级 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/

相关文章:

angular-reactive-forms - 切换单选按钮无法以 react 形式工作 - 角度 8

dart - 构建响应式(Reactive)表单时出现运行时错误

javascript - 如果在没有 "banana"包装的情况下使用,ngModel 是否会创建两种方式的数据绑定(bind)

javascript - 使用 fast-csv 模块转换文件 utf8

javascript - DataTables 中显示行的限制

javascript - angularJS - nginit,如何获得范围

Angular Material MatChipList MatError 在没有焦点的情况下设置 errorstate 时不可见

angular - 服务相互包含时访问静态属性时出错

angular - 如何以 Angular 修补日期onEdit

javascript - 使用没有标题 ionic 的条纹标签