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

相关内容

热门资讯

三分钟了解!填大坑辅助器攻略,... 三分钟了解!填大坑辅助器攻略,同乡游辅助工具,详细神器(有挂规律)1、许多玩家不知道填大坑辅助器攻略...
2026版软件!wepoker... 2026版软件!wepoker免费脚本弱密码,德普之星辅助器,确实确实有挂(有挂工具)1、该软件可以...
总算了解!乐酷副厅辅助,闲逸辅... 总算了解!乐酷副厅辅助,闲逸辅助器下载,详细软件(有挂透视)1、总算了解!乐酷副厅辅助,闲逸辅助器下...
网友热议!wepoker辅助器... 网友热议!wepoker辅助器免费,德扑之心免费透视,确实是真的有挂(有挂透明挂)网友热议!wepo...
实测交流!广东雀神挂件脚本开挂... 实测交流!广东雀神挂件脚本开挂,新畅游辅助器,详细教程(有挂工具)广东雀神挂件脚本开挂是不是有人用挂...
今天下午!fishpoker透... 今天下午!fishpoker透视底牌,德普之星辅助器app,果然存在有挂(存在有挂)德普之星辅助器a...
重大消息!来几局辅助器开挂,链... 重大消息!来几局辅助器开挂,链接大厅辅助插件有哪些,详细脚本(有挂方法)1、该软件可以轻松地帮助玩家...
黑科技辅助!hh poker软... 黑科技辅助!hh poker软件,德普辅助软件,一直真的是有挂(有挂方式)1、上手简单,内置详细流程...
终于清楚!吉祥填大坑辅助器攻略... 终于清楚!吉祥填大坑辅助器攻略,博乐填大坑有没有buff,详细挂(有挂教程)亲,关键说明,吉祥填大坑...
据报道!wepoker插件功能... 据报道!wepoker插件功能辅助器,德普之星私人局辅助器,原来真的是有挂(新版有挂)1、实时德普之...