formgroup--表单切换后,必填字段显示验证

当前场景:

在这里插入图片描述

当用户选择【协议分类】为【业务数据】时,展示下面两个formcontrol,并且两个formcontrol为必填,
切换事件:

  this.form.get('dataOwnerIds').setValue('');this.form.get('pushTargetIds').setValue('');this.form.get('dataOwnerIds').setValidators(!this.showOtherData ? Validators.required : null);this.form.get('pushTargetIds').setValidators(!this.showOtherData ? Validators.required : null);this.form.get('dataOwnerIds').updateValueAndValidity();this.form.get('pushTargetIds').updateValueAndValidity();

之前文章有提到过如何动态修改当前controlName的验证:文章传送===》angular响应式表单动态修改表单验证

当前是根据页面切换控制是否渲染组件。有两种解决方式:

1.按照我的下拉select的onchage事件去单独控制这两个controlname的显隐
解决问题方式:

//原来代码this.form.get('dataOwnerIds').setValue('');this.form.get('pushTargetIds').setValue('');//修改为:this.form.get('dataOwnerIds').setValue('',{emitevent:false});this.form.get('pushTargetIds').setValue('',{emitevent:false});

2.换一种实现方式:
使用addControl和removeControl实现:
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部