反应式表单值更改如何仅观看 2 个字段[Angular2]

Vla*_*kic 5 rxjs angular

我怎样才能只观看 Angular ReactiveForm 的 2 个字段?我有一个如下所示的表格:

this.filter = this.fb.group({
            text: ['', []],
            bankCountry: ['', []],
            bankCity: ['', []]
        });
Run Code Online (Sandbox Code Playgroud)

我如何监视与最后 2 个字段相关的更改?

Mac*_*der 2

两种方式:

1、使用combineLatest:

http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#static-method-combineLatest

Observable.combineLatest( this.text.valueChanges, this.bankCountry.valueChanges ).subscribe(respArr => {
     console.log(respArr); //this is array with responses from both observables
});
Run Code Online (Sandbox Code Playgroud)

2、使用过滤器:

http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-filter

this.filter.valueChanges.filter((val) => /*filter predicate returning boolean*/).subscribe(val => {
    console.log(val);
});
Run Code Online (Sandbox Code Playgroud)

  • 关于谓词解决方案,假设您不希望在值未更改时触发它,您如何知道哪个值发生了更改? (2认同)