我正在尝试使用使用ControlValueAccessor接口的自定义组件来嵌套/子表单。
我在这里https://stackblitz.com/edit/angular-jg2p8c
有一个stackblitz演示我无法弄清楚为什么更改“信息”表单(黄色框)不会更改touched
对象上的infoForm
属性。
答案 0 :(得分:0)
仅提供NG_VALUE_ACCESSOR
是不够的。您还需要实现ControlValueAccessor
interface,这意味着您要使用registerOnTouched(fn)
参数函数,然后在触摸控件时调用它。否则,表单将无法连接。
onTouched = () => void;
constructor() {
this.form.statusChanges.pipe(
first(() => this.form.touched),
).subscribe(
() => this.onTouched()
)
}
registerOnTouched(fn) {
this.onTouched = fn;
}