如果 onlySelf 为 true,则此更改只会影响此 FormControl 的验证,而不影响其父组件.这默认为 false.那么你可以做的是: ResetAndDisable(){this.ParentGroup.controls['test'].reset(null,{onlySelf:true,emitEvent:false});this.ParentGroup.controls['test'].disable({onl​​ySelf:true,emitEvent:false});}使能够(){this.ParentGroup.controls['test'].enable({onl​​ySelf:true,emitEvent:false});}I have a formgroup which has a formcontrol. I have subscribed the valuechanges event of both formgroup and formcontrol.With a button click i would like to disable and reset value of formcontrol without firing valuechanges so i have used emitEvent:false which doesnot fire the valuechanges of the formcontrol but valuechanges of the formgroup is fired.I have a sample plunker demo here https://plnkr.co/edit/cN2wROc7o16w52ZEPZgH?p=preview .Is this expected behavior or an issue.Can somebody guide me ResetAndDisable(){ this.ParentGroup.controls['test'].reset(null,{emitEvent:false}); this.ParentGroup.controls['test'].disable({emitEvent:false}); } Enable(){ this.ParentGroup.controls['test'].enable({emitEvent:false}); } 解决方案 You can use a combination of emitEvent:false and onlySelf:true, where onlySelf:true ...If onlySelf is true, this change will only affect the validation of this FormControl and not its parent component. This defaults to false.So what you can do is then: ResetAndDisable(){ this.ParentGroup.controls['test'].reset(null,{onlySelf:true, emitEvent:false}); this.ParentGroup.controls['test'].disable({onlySelf:true, emitEvent:false}); } Enable(){ this.ParentGroup.controls['test'].enable({onlySelf:true, emitEvent:false}); } 这篇关于停止表单控件和表单组的值更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
09-02 02:22