由于第三方插件的要求,我想使用FormControl
格式化输入到页面上某个parseFloat
的每个值,所以我做了类似的事情:
this.form.get('latitude').valueChanges.subscribe(e => {
this.form.patchValue({latitude: parseFloat(e)});
});
显然这是行不通的,它会创建一个无限循环。
我该如何做却没有循环?
答案 0 :(得分:1)
patchValue接受包含选项的辅助参数,包括emitEvent
选项。
您可以通过以下方式更新代码
this.form.get('latitude').valueChanges.subscribe(e => {
this.form.patchValue({latitude: parseFloat(e)}, {emitEvent: false});
});
您将避免无限循环,因为patchValue
方法不会触发另一个valueChanges
。