要在Angular 7的FormControl的valueChanges事件中获取旧值,可以使用rxjs的pairwise操作符。pairwise操作符会将前一个值和当前值作为一个数组发出。
以下是一个示例代码:
import { Component } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { pairwise, startWith } from 'rxjs/operators';
@Component({
selector: 'app-root',
template: `
`
})
export class AppComponent {
myForm: FormGroup;
constructor(private fb: FormBuilder) {
this.myForm = this.fb.group({
myControl: ''
});
// 使用pairwise操作符获取旧值和当前值
this.myForm.get('myControl').valueChanges.pipe(
startWith(''), // 为了触发第一个pairwise
pairwise()
).subscribe(([oldValue, newValue]) => {
console.log('Old Value:', oldValue);
console.log('New Value:', newValue);
});
}
}
在上面的代码中,我们创建了一个名为myForm的FormGroup,并在myForm中创建了一个名为myControl的FormControl。然后,我们使用pairwise操作符来获取旧值和当前值。我们还使用startWith操作符来触发第一个pairwise。
在subscribe回调函数中,我们可以访问旧值和当前值,并对它们进行任何操作。
请注意,上述代码需要安装rxjs依赖。可以使用以下命令进行安装:
npm install rxjs
希望这可以帮助到你!