Angular Reactive 表单:如何获取刚刚更改的值

2024-04-18

我使用 Angular 6 构建反应式表单,该表单包含 3 个属性(姓名、年龄、电话),我只想获取更改后的值而不是所有表单值。

this.refClientForm = this.formBuilder.group({
  name: [],
  phone: [],
  age: []
});

对于表单监听器:

 this.refClientForm.valueChanges.subscribe(values => console.log(values))

但我总是得到所有形式的值。


您可以检查所有控件的脏标志。看https://angular.io/api/forms/FormControl https://angular.io/api/forms/FormControl

getDirtyValues(form: any) {
        let dirtyValues = {};

        Object.keys(form.controls)
            .forEach(key => {
                let currentControl = form.controls[key];

                if (currentControl.dirty) {
                    if (currentControl.controls)
                        dirtyValues[key] = this.getDirtyValues(currentControl);
                    else
                        dirtyValues[key] = currentControl.value;
                }
            });

        return dirtyValues;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular Reactive 表单:如何获取刚刚更改的值 的相关文章

随机推荐