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实现:

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