Angular 自定义表单控件未更新表单值
Angular custom form control not updating form value
我有一个密码输入组件,是自定义表单控件。
问题是,当我输入内容时,表单值(使用 FormGroup
创建)没有更新。
但是,当我使用 form.get('key').setValue('value here')
时,表单值和组件都会正确更新。
可能是什么问题?
使用 Angular v13.2.1 • Whole source code • component with the form • password input component
想将其上传到 Stackblitz,但遇到许多不相关的错误。
writeValue 函数在 ui 中的输入更新时由 angular 调用。
每当内部更改应反映在 ui 中时,组件应调用 onChange。
因此,只要 angular 调用 writeValue 就调用 onChange 是不对的 ui。相反,您应该在 onChange 中设置表单控件值。
此外,通过将 [value] = "value" 放在输入上并调用 onInput(),您将调用 value 变量的过时值进行更改。
尝试使用 [(ngModel)] = "value" 和 (ngModelChange) 的 2 种方式绑定。
我有一个密码输入组件,是自定义表单控件。
问题是,当我输入内容时,表单值(使用 FormGroup
创建)没有更新。
但是,当我使用 form.get('key').setValue('value here')
时,表单值和组件都会正确更新。
可能是什么问题?
使用 Angular v13.2.1 • Whole source code • component with the form • password input component
想将其上传到 Stackblitz,但遇到许多不相关的错误。
writeValue 函数在 ui 中的输入更新时由 angular 调用。 每当内部更改应反映在 ui 中时,组件应调用 onChange。 因此,只要 angular 调用 writeValue 就调用 onChange 是不对的 ui。相反,您应该在 onChange 中设置表单控件值。 此外,通过将 [value] = "value" 放在输入上并调用 onInput(),您将调用 value 变量的过时值进行更改。 尝试使用 [(ngModel)] = "value" 和 (ngModelChange) 的 2 种方式绑定。