Angular Reactuve 表单控件 valueChanges 获取值更改字段名称、上一个值和当前值

Din*_*san 4 javascript rxjs angular angular-reactive-forms

 this.form = this.fb.group({ 
  prop1: '',
  prop2: ''
});

this.form.valueChanges.pipe(startWith(null), pairwise())
  .subscribe(([prev, next]: [any, any]) => {
    console.log('PREV2', prev);
    console.log('NEXT2', next);
  });
Run Code Online (Sandbox Code Playgroud)

使用此代码我可以获得以前的值和当前值。我想要的是有什么方法可以获取更改的字段、上一个值和当前值。

就像字段更改名称:prop1,上一个值:“”,当前值:“下一个值”

小智 7

您可以订阅FormGroup.valueChanges可观察的内容,而不是订阅FormControl.valueChanges可观察的内容。有关实现,请参阅https://angular.io/api/forms/FormControl 。这样您就可以访问控件本身。也许是这样的?

Object.keys(this.form.controls).forEach(key => {
        this.form.controls[key].valueChanges.pipe(startWith(null), pairwise())
        .subscribe(([prev, next]: [any, any]) => {
            console.log(key) // your FormControl Identifier 
            console.log('PREV2', prev);
            console.log('NEXT2', next);
        });
    });
Run Code Online (Sandbox Code Playgroud)