Filtre Simple sur le tableau de RXJS Observables

Je suis en train de créer mon projet avec Angular2 et les développeurs semblent recommander RXJS Observables au lieu de Promesses.

J'ai réalisé, pour récupérer une liste d'éléments (épopées) à partir du serveur.
Mais comment puis-je filtrer les elments en utilisant par exemple un id?

Le code suivant est une extraction à partir de mon application et montre maintenant la finale de la solution de travail. Espérons que cela aide quelqu'un.

@Injectable()
export class EpicService {
private url = CONFIG.SERVER + '/app/';  //URL to web API
constructor(private http:Http) {}
private extractData(res:Response) {
let body = res.json();
return body;
}
getEpics():Observable<Epic[]> {
return this.http.get(this.url + "getEpics")
.map(this.extractData)
.catch(this.handleError);
}
getEpic(id:string): Observable<Epic> {
return this.getEpics()
.map(epics => epics.filter(epic => epic.id === id)[0]);
}
}
export class EpicComponent {
errorMessage:string;
epics:Epic[];
epic:Epic;
constructor(
private requirementService:EpicService) {
}
getEpics() {
this.requirementService.getEpics()
.subscribe(
epics => this.epics = epics,
error => this.errorMessage = <any>error);
}
//actually this should be eventually in another component
getEpic(id:string) {
this.requirementService.getEpic(id)
.subscribe(
epic => this.epic = epic,
error => this.errorMessage = <any>error);
}
}
export class Epic {
id: string;
name: string;
}

Je vous remercie d'avance pour votre aide.

  • vous devriez avoir quitté la question d'origine comme c'est, de cette façon, on ne saura jamais ce "pas" à faire
InformationsquelleAutor Johannes | 2016-06-23