我正在构建一个Angular自定义表单组件,它是一个日期选择器。三个select
框显示年,月和日。更改年份或月份时,将重新计算日期选项以提供所选月份中的确切天数。该组件将Date
对象返回到父组件的FormGroup
。
这是问题所在。初始化组件时,其值为null
。它保持null
,直到用户更改select
框之一,调用registerOnChange()
,从而设置控件的值。通过Date
返回的ControlValueAccessor
对象是通过三个select
框的值中的简单函数计算出来的。现在,如何在不用实际更改任何内容的情况下以编程方式调用registerOnChange()
?除非发生这种情况,否则控件的值为null
。
答案 0 :(得分:0)
registerOnChange()
在init上自动运行。可以像这样插入所需的值:
onChange: any = () => { };
registerOnChange(fn) {
this.onChange = fn;
this.onChange(this.calcDate());
}