2016-08-24 2 views
1

Ich habe eine einfache Anwendung, die Informationen von meiner API erhält, speichert sie im Speicher und dann präsentieren.Wie Filterbar Observable Array in Angular 2.0?

Mein Hauptkomponentencode:

export class AppComponent implements OnInit { 
builds$: Observable<BuildInfo[]>; 
ngOnInit(): void { 
    this.builds$ = this.buildService.builds$; 
    this.buildService.loadAll(); 
    ... 
}} 

Template Code:

.dashboard 
.mobile 
    .build(*ngFor="let build of (builds$ | async | buildsByGroupFilter:'mobile')") 
    | {{build.baseInfo.id}} - {{build.baseInfo.name}} - {{build.status}} 

buildsByGroupFilter Rohr:

export class BuildsByGroupFilterPipe implements PipeTransform { 
transform(items: BuildInfo[], arg: string) { 
    return items.filter(item => item.baseInfo.group === arg); 
} 

Wenn ich Anwendung ausführen bekomme ich einen Fehler, dass es nicht möglich ist, Führen Sie die Transformation für ein undefiniertes Objekt durch. Ich weiß nicht, wie man eine Pipe erstellt, die auf Daten von meinem Dienst wartet und sie dann transformiert und nur Builds zurücklässt, die als "mobil" markiert sind.

Jemand hat irgendwelche Ideen?

Antwort

0

Dies sollte das tun, was Sie wollen:

(builds$ | async) | buildsByGroupFilter:'mobile' 

Sie auch für null im Rohr

transform(items: BuildInfo[], arg: string) { 
    if(items) { 
     return items.filter(item => item.baseInfo.group === arg); 
    } 
} 
+0

immer den gleichen Fehler überprüfen sollten: ORIGINAL AUSNAHME: Typeerror: Kann nicht erhalten Eigenschaft ‚Filter 'von undefinierter oder Null-Referenz –