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方法中,遍历子表单的所有控件,并将其标记为'已触摸”并更新其值和有效性状态。

相关内容

热门资讯

透视系统!pokerworld... 透视系统!pokerworld破解版下载(透视)都是真的是有挂(详细辅助细节揭秘)1、系统规律教程、...
实操分享!hhpoker怎么开... 这是一款非常优秀的we-poker是什么软件 ia辅助检测软件,能够让你了解到we-poker是什么...
透视总结!约局吧德州有挂吗(透... 透视总结!约局吧德州有挂吗(透视)确实存在有挂(详细辅助玩家教你);1、许多玩家不知道辅助软件怎么退...
交流学习经验!cloudpok... 这是一款非常优秀的德州透视竞技联盟 ia辅助检测软件,能够让你了解到德州透视竞技联盟中牌率当中全部隐...
透视安卓版!wpk俱乐部辅助器... 透视安卓版!wpk俱乐部辅助器(透视)一贯存在有挂(详细辅助分享教程)1、ai机器人多个强度级别选择...
玩家攻略推荐!wepoker国... 玩家攻略推荐!wepoker国外版透视,wepoker看底牌,AI教程(有挂技巧);玩家必备必赢加哟...
透视总结!hhpoker软件可... 透视总结!hhpoker软件可以玩吗(透视)确实有挂(详细辅助2025新版教程);1、上手简单,内置...
每日必备!wepoker透视脚... 每日必备!wepoker透视脚本免费app,steampokermaster辅助,辅助教程(有挂技巧...
透视神器!wepoker安装教... 透视神器!wepoker安装教程(透视)本来有挂(详细辅助黑科技教程);1、完成的残局,帮助玩家取得...
总算了解!wepoker数据分... 1、总算了解!wepoker数据分析工具,hhpoker软件靠谱吗,wpk教程(有挂教程)。2、we...