繁体   English   中英

使用 CustomValueAccessor 在自定义控件中重置反应形式 FormControl / AbstractControl

[英]Reset reactive form FormControl / AbstractControl inside custom control with CustomValueAccessor

我有一个实现CustomValueAccessor的组件,它内部有clear()方法来重置给定formControlName的值。 在引擎盖下有<input type="file"> 将其设置为@ViewChild并设置本机元素值不会反映到FormGroup 也从registerOnChange(fn: Function) {}用 null 触发回调不起作用。

现在我只是将formGroup.controls.get('myControl')作为@Input()传递给自定义控件组件,在那里重置它。 但是有没有更好的方法来了解自定义控件组件中的控件? 我还使用EventEmitter在组件外部执行此操作,但希望在组件中编写一次此逻辑。

您可以在组件内创建一个FromControl并以反应方式使用它。

.ts 文件:

control = new FormControl();

html文件:

<input type="file" [formControl]="control">

然后,如果您想重置它,您只需使用更新的值调用this.control.reset()propagateChange()更改propagateChange() (在您的情况下可能未定义)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM