我有一个formgroup控件有一个formcontrol.我已经订阅了formgroup和formcontrol的valuechanges事件.点击按钮我想禁用并重置formcontrol的值而不激活valuechanges所以我用过emitEvent:false它不会触发formcontrol的值更改但是formgroup的值更改被触发.I在这里有一个示例plunker演示https://plnkr.co/edit/cN2wROc7o16w52ZEPZgH?p=preview.这是预期的行为或问题.可以有人指导我
ResetAndDisable(){
this.ParentGroup.controls['test'].reset(null,{emitEvent:false});
this.ParentGroup.controls['test'].disable({emitEvent:false});
}
Enable(){
this.ParentGroup.controls['test'].enable({emitEvent:false});
}
Run Code Online (Sandbox Code Playgroud)
你可以结合使用emitEvent:false和onlySelf:true,onlySelf:true......
如果
onlySelf为true,则此更改将仅影响此FormControl的验证,而不影响其父组件.默认为false.
所以你能做的就是:
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});
}
Run Code Online (Sandbox Code Playgroud)
你的plunker:https://plnkr.co/edit/bXTV8dqqJBDMAuAwuz5a ? p = preview
| 归档时间: |
|
| 查看次数: |
2941 次 |
| 最近记录: |