如何使用 FormControl.valueChanges 格式化输入值

How to use FormControl.valueChanges to format input value

由于第三方插件的要求,我想使用 parseFloat 格式化我页面上输入到某个 FormControl 的每个值,所以我做了如下内容:

this.form.get('latitude').valueChanges.subscribe(e => {
  this.form.patchValue({latitude: parseFloat(e)});
});

显然这是行不通的,它会造成无限循环。

如何在没有循环的情况下做这样的事情?

patchValue 接受包含选项的辅助参数,包括 emitEvent 选项。

您可以使用

更新您的代码
this.form.get('latitude').valueChanges.subscribe(e => {
  this.form.patchValue({latitude: parseFloat(e)}, {emitEvent: false});
});

并且您将避免无限循环,因为 patchValue 方法不会触发另一个 valueChanges