我有一个表单组,它有一个表单控件。我已经订阅了formgroup和formcontrol.With的valuechanges事件,点击一个按钮,我想禁用和重置窗体控制的值,而不触发值,所以我使用了emitEvent:false,它不触发窗体控件的值,但是窗体组的值变体是着火的。这里有一个示例柱塞演示,https://plnkr.co/edit/cN2wROc7o16w52ZEPZgH?p=preview .Is,这个预期的行为,或者是一个issue.Can,有人指导我。
ResetAndDisable(){
this.ParentGroup.controls['test'].reset(null,{emitEvent:false});
this.ParentGroup.controls['test'].disable({emitEvent:false});
}
Enable(){
this.ParentGroup.controls['test'].enable({emitEvent:false});
}发布于 2017-08-13 07:53:05
你可以使用emitEvent:false和onlySelf:true的组合,其中onlySelf:true .
如果
onlySelf为真,则此更改只会影响此FormControl的验证,而不会影响其父组件的验证。这默认为false。
所以你能做的就是:
ResetAndDisable(){
this.ParentGroup.get('test').reset(null,{onlySelf:true, emitEvent:false});
this.ParentGroup.get('test').disable({onlySelf:true, emitEvent:false});
}
Enable(){
this.ParentGroup.get('test').enable({onlySelf:true, emitEvent:false});
}https://stackoverflow.com/questions/45653231
复制相似问题