2016-12-23 4 views
0

角度に反応検索する前に、いくつかのクリーンアップを行うには、私のシナリオでは、値length > 2api検索 他に明確なデータ操作を行う場合、私は反応検索 にしたいRxJS:どのようにここでは2

です。 Rxjsは、オペレータは、角2で動作しない理由を長< = 2

他の質問があるとき

しかし、私は明らかデータ

userList: Observable<User[]>; 

USERLISTに知りませんが、空でなければなりませんか?値の長さ> 2は、APIの他の検索データクリアを行う場合、私は反応性、検索したい

this.userList = this.userNameCtrl.valueChanges 
      .filter(x => x.length > 2) 
      .debounceTime(400) 
      .distinctUntilChanged() 
      .switchMap(value => this._userService.searchUsers(value)); 
+1

あなたは、「データを消去」とはどういう意味ですか?どのデータですか? 'do'演算子がうまく動作しないと言うと、どういう意味ですか?あなたはあなたがそれをどのように使ってみたかを示していません。 – cartant

+0

'do'はAngular2でうまく動作します –

+0

userList:Observable ; length <= 2のときにuserListを空にする必要があります。 –

答えて

1

this.userList = this.userNameCtrl.valueChanges.do(d => console.log(d)); 

は、ここに私のコードです。

私はあなたがストリームにダウン空の配列を押すことを意味クリアして、右理解している場合:

this.userList = this.userNameCtrl.valueChanges 
    .debounceTime(400) 
    .distinctUntilChanged() 
    .switchMap(value => { 
     if(value.length > 2) { 
      return this._userService.searchUsers(value); 
     } else { 
      return Observable.of([]); 
     } 
    }); 

Rxjsは、オペレータは、角2で動作しない理由は、他の質問はありますか?あなたが購読する必要があるため

this.userList = this.userNameCtrl.valueChanges.do(d => console.log(d)); 

このコードは何も出力を行い、観察最初

this.userList = this.userNameCtrl.valueChanges 
    .do(d => console.log(d)) 
    subscribe(() => {}); 

// or simply 

this.userList = this.userNameCtrl.valueChanges 
    subscribe(d => console.log(d)); 
+0

こんにちはSergev ありがとうございました。それは今働く。 サブスクリプションオペレーターと思って、私は間違っています。 –

関連する問題