Angular 自定义表单控件未更新表单值

Angular custom form control not updating form value

我有一个密码输入组件,是自定义表单控件。

问题是,当我输入内容时,表单值(使用 FormGroup 创建)没有更新。

但是,当我使用 form.get('key').setValue('value here') 时,表单值和组件都会正确更新。

可能是什么问题?

使用 Angular v13.2.1 • Whole source codecomponent with the formpassword input component
想将其上传到 Stackblitz,但遇到许多不相关的错误。

writeValue 函数在 ui 中的输入更新时由 angular 调用。 每当内部更改应反映在 ui 中时,组件应调用 onChange。 因此,只要 angular 调用 writeValue 就调用 onChange 是不对的 ui。相反,您应该在 onChange 中设置表单控件值。 此外,通过将 [value] = "value" 放在输入上并调用 onInput(),您将调用 value 变量的过时值进行更改。 尝试使用 [(ngModel)] = "value" 和 (ngModelChange) 的 2 种方式绑定。