2016-08-24 67 views
1

我有一个简单的应用程序,它从我的API获取信息,将它存储在内存中,然后呈现。如何过滤Angular 2.0中的Observable Array?

我的主要成分代码:

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

模板代码:

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

buildsByGroupFilter管:

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

当我运行应用程序,我得到一个错误,这是不可能的对未定义的对象执行转换。我不知道如何制作一个管道,它将等待来自我的服务的数据,然后进行转换,只留下标记为“移动”的构建。

有人有什么想法吗?

回答

0

这应该做你想要什么:

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

你也应该在管道

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

得到同样的错误检查null: 原始异常:类型错误:无法获取财产“过滤器'未定义或空引用 –