如何使用 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
。
由于第三方插件的要求,我想使用 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
。