Angular响应式表单在子组件上提交时无法触发验证。
创始人
2024-10-30 08:00:30
0

在子组件上手动触发验证,可以通过使用@ViewChild装饰器获取每个子组件的表单控件,并在提交钩子中手动调用其验证方法。以下是示例代码:

父组件模板:

父组件代码:

export class ParentComponent implements OnInit {
  parentForm: FormGroup;
  @ViewChild(ChildComponent) childComponent: ChildComponent;

  constructor(private fb: FormBuilder) {}

  ngOnInit() {
    this.parentForm = this.fb.group({
      child: ['', Validators.required]
    });
  }

  onSubmit() {
    if (this.parentForm.valid && this.childComponent.childForm.valid) {
      console.log('Form submitted successfully');
    } else {
      console.log('Form submission failed');
    }
  }
}

子组件模板:

子组件代码:

export class ChildComponent {
  childForm: FormGroup;

  constructor(private fb: FormBuilder) {}

  ngOnInit() {
    this.childForm = this.fb.group({
      name: ['', Validators.required]
    });
  }

  validate() {
    Object.values(this.childForm.controls).forEach(control => {
      control.markAsTouched();
      control.updateValueAndValidity();
    });
  }
}

在父组件中,使用@ViewChild来获取ChildComponent实例并存储在childComponent属性中。在提交钩子中,首先检查父表单是否有效,然后检查子组件的表单是否有效。如果子组件表单无效,则手动调用其validate方法以触发验证。在validate方法中,遍历子表单的所有控件,并将其标记为'已触摸”并更新其值和有效性状态。

相关内容

热门资讯

透视工具(wepOke)wep... 透视工具(wepOke)wepoke怎么来好牌(透视)详细辅助新2025教程;《WPK辅助透视》‌:...
透视实锤!wpk透视脚本链接(... 透视实锤!wpk透视脚本链接(透视)详细辅助力荐教程(真是真的有挂)在进入wpk透视脚本链接辅助挂后...
透视美元局!wepower辅助... 透视美元局!wepower辅助器,wopoker辅助,详细透视分享教程1)wepower辅助器辅助挂...
透视黑科技(wepoke)德扑... 透视黑科技(wepoke)德扑ai智能机器人线上代打(透视)详细辅助2025教程;玩家必备必赢加哟《...
透视好友!wpk俱乐部辅助器(... 透视好友!wpk俱乐部辅助器(透视)竟然存在有挂(详细辅助解密教程);1分钟了解详细教程(微信 13...
透视存在!wepoker辅助器... 透视存在!wepoker辅助器是真的的吗(透视)详细辅助黑科技教程(一直存在有挂)1、每一步都需要思...
透视最新!wepoke辅助插件... 透视最新!wepoke辅助插件,wepoke能赢嘛,详细透视大神讲解wepoke辅助插件辅助器中分为...
透视安装!wepoker辅助透... 透视安装!wepoker辅助透视软件(透视)原生是有挂(详细辅助科技教程);小薇(透视辅助)致您一封...
透视系统(wePOke)wep... 您好,wepoke软件透明下载渠道这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302...
透视挂透视!红龙poker作弊... 透视挂透视!红龙poker作弊指令(透视)详细辅助黑科技教程(其实真的是有挂);1、让任何用户在无需...