Angular FormControlName 与 NgModel 绑定

问题描述 投票:0回答:1

我有一个使用 Angular 的 FormgroupName 或 NgModel 的一般性问题。 我正在阅读的文档说 NgModel 在版本 6 中已被弃用,但它在 17/18(今天的当前版本)中仍然可用。 NgModel 的优点在于我可以立即绑定回我的数据模型,但使用 FormgroupName 需要我像这样手动更新:

  this.account.company = this.profileForm.controls["company"].value;

有没有一种方法可以像我们使用 ngModel 一样绑定 FormGroup 的字段,或者手动更新每个字段是常态?

谢谢

angular angular-material angular-ngmodel formgroups
1个回答
0
投票

你可以使用信号。在某种程度上,在 ngModel 上使用反应式形式时,您仍然需要编写代码来设置变量中的值,但使用信号,您可以使其成为声明式而不是命令式。

form = new FormGroup({
  control: new FormControl(''),
});
controlValue = toSignal(this.form.get("control").valueChanges);

这样,添加诸如去抖动之类的东西就很容易了:

controlValue = toSignal(this.form.get("control").valueChanges.pipe(debounceTime(200)));
© www.soinside.com 2019 - 2024. All rights reserved.