我有一个使用 Angular 的 FormgroupName 或 NgModel 的一般性问题。 我正在阅读的文档说 NgModel 在版本 6 中已被弃用,但它在 17/18(今天的当前版本)中仍然可用。 NgModel 的优点在于我可以立即绑定回我的数据模型,但使用 FormgroupName 需要我像这样手动更新:
this.account.company = this.profileForm.controls["company"].value;
有没有一种方法可以像我们使用 ngModel 一样绑定 FormGroup 的字段,或者手动更新每个字段是常态?
谢谢
你可以使用信号。在某种程度上,在 ngModel 上使用反应式形式时,您仍然需要编写代码来设置变量中的值,但使用信号,您可以使其成为声明式而不是命令式。
form = new FormGroup({
control: new FormControl(''),
});
controlValue = toSignal(this.form.get("control").valueChanges);
这样,添加诸如去抖动之类的东西就很容易了:
controlValue = toSignal(this.form.get("control").valueChanges.pipe(debounceTime(200)));