2015-12-21 8 views
6

In Angular 2.0.0-alpha.47 il Observable restituito dalla chiamata formInput.valueChanges() aveva tutte le funzioni di ordine superiore, cioè potevo fare qualcosa come questo;In Angular 2.0.0-beta.0 map() e filter() mancano dall'input di un modulo Observable

this.search.valueChanges 
.debounceTime(150) 
.map(x=>return x+1) 
.switchMap(text => this.youtube.search(text)); 

Ora sto utilizzando 2.0.0-beta.0 e il Observable tornati dal this.search.valueChanges() non ha più tutti i metodi. Posso solo iscrivermi. Non riesco più a chiamare map(), filter() ecc.

Qualcuno sa se questo è il comportamento previsto per gli input di modulo ora?

+0

['valueChanges'] (https://github.com/angular/angular/blob/master/modules/angular2/src/common/forms/model.ts#L88) restituisce un Observable (è per questo che puoi iscriverti ...). Che problema stai avendo? –

+0

@EricMartinez Posso chiamare più funzioni di ordine superiore sull'osservabile restituito come potevo quando era in alpha. Modificherò la mia domanda per renderla un po 'più chiara. – screenm0nkey

+0

probabilmente sarà sempre il caso - non solo i primi beta (lo stesso in beta.12) –

risposta

6

Rxjs di importazione in questo modo:

Import * as Rx from "rxjs/Rx"; 

Gli operatori saranno disponibili.

Quando si utilizza la classe Observable, si predice con Rx. (Rx.Observable)

+0

Era così. Grazie Mourad. Tutti gli esempi di codice che stavo osservando per la versione beta utilizzavano 'import {Observable, Observer} da' rxjs/Observable '; import 'rxjs/operator/map'; ' – screenm0nkey

+2

ho avuto lo stesso problema .. ho trascorso 4 ore per risolvere il problema .. Il passaggio da Rxjs 4-5 non è facile .. https://github.com/ReactiveX/RxJS/blob /master/MIGRATION.md –