2017-05-12 5 views
0
this.searchField.valueChanges 
     .debounceTime(400) 
     .distinctUntilChanged() 
     .switchMap(term => this.data(term), this.variable = true) 
     .subscribe((result) => { 
     this.variable = false; 

     }); 

上記のコードでは、this.data observableメソッドが呼び出されているときにthis.variableをtrueにしたいと考えています。これは私が試した方法ですが、それは観測可能な方法ではないことを意味しますAngular2検索値の変更にブール値を追加

答えて

0

switchMapとしたいことはわかりませんが、Observableチェーンを初期化したい場合はstartWith()オペレータを使用できます。

this.searchField.valueChanges 
    .debounceTime(400) 
    .startWith(true) 

それとも、常に唯一の真の値を渡したい場合は、mapToを使用することができます。

this.searchField.valueChanges 
    .debounceTime(400) 
    .mapTo(true) 
0

使用オペレータ

は、観察可能なソース上のすべての放出のための副作用を実行しますか、ソースと同一のObservableを返します。

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

this.searchField.valueChanges 
    .debounceTime(400) 
    .distinctUntilChanged() 
    .switchMap(term => this.data(term)) 
    .do(x => this.variable = true) 
    .subscribe((result) => { 
    this.variable = false; 

    }); 
+0

'this.data(用語)'観察可能なメソッドが呼び出されたとき、これに該当するthis.variable' 'の値を変更されていません – kohli

関連する問題