我有表格:

this.filterForm = this.fb.group({
      type: [null, [Validators.required]]});

我听变化:
this.filterForm.controls["type"].valueChanges.subscribe(
      selectedValue => {

});

在上面的代码中,我得到元素的selectedValue,如何获取先前的值以进行比较,例如:
if (old("type") !== selectedValue) {
   // Call user method
}

我尝试使用表单中的其他两个字段来执行此操作:
Observable.merge(this.filterForm.controls["classNumber"].valueChanges, this.filterForm.controls["classSuffix"].valueChanges).subscribe(response => {
        if (response[0] !== this.filterForm.value.classNumber && this.filterForm.controls["classSuffix"]) { // Call method }
    });

最佳答案

您可以使用此方法来解决您的问题:
已经创建了一个demo供您引用,并检查stackblitz控制台

this.filterForm
   .controls["type"]
   .valueChanges
   .subscribe(selectedValue => {
       // New value of Type;
       console.log('New Value: ', selectedValue);

       // Old value of Type; Avoid using this.filterForm.get('type').value
       // This will give you the current/latest value.
       console.log('Old Value: ', this.filterForm.value['type']);
});

关于angular - 如何获得 react 形式的先前值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53569697/

10-11 03:45