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

相关内容

热门资讯

透视app!智星菠萝辅助怎么买... 透视app!智星菠萝辅助怎么买,hhpoker透视脚本(详细辅助微扑克教程)在进入智星菠萝辅助怎么买...
aapoker猫腻!wpk用什... aapoker猫腻!wpk用什么辅助器(透视)都是真的是有挂(详细辅助AA德州教程);小薇(透视辅助...
透视存在!wpk辅助器是真的吗... 透视存在!wpk辅助器是真的吗,哈糖大菠萝软件下载(详细辅助必备教程)亲,关键说明,wpk辅助器是真...
微扑克辅助器ios!德州免费辅... 自定义德州免费辅助神器app系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器...
德扑之星有猫腻!微扑克机器人代... 德扑之星有猫腻!微扑克机器人代打俱乐部(透视)切实真的有挂(详细辅助必备教程)是一款可以让一直输的玩...
透视有挂!wpk脚本是什么,h... 透视有挂!wpk脚本是什么,hhpoker德州牛仔视频(详细辅助系统教程)1、操作简单,无需注册,只...
德扑起手牌胜率图!poker有... 德扑起手牌胜率图!poker有没有外挂(透视)固有是真的有挂(详细辅助科技教程)是一款可以让一直输的...
透视挂透视!智星菠萝辅助怎么买... 透视挂透视!智星菠萝辅助怎么买,wepoker私人局透视教程(详细辅助解密教程)1、用户打开应用后不...
德州之星插件!wpk辅助nzt... 德州之星插件!wpk辅助nzt(透视)起初有挂(详细辅助教你攻略);小薇(透视辅助)致您一封信;亲爱...
wepower有外挂!wepo... wepower有外挂!wepower系统规律(透视)起初真的有挂(详细辅助高科技教程)1、许多玩家不...