【发布时间】:2016-11-16 22:36:04
【问题描述】:
应用以下自定义管道来过滤一组项目:
import {Injectable, Pipe, PipeTransform} from '@angular/core';
@Pipe({
name: 'filterHeaders',
pure: false
})
@Injectable()
export class FilterHeadersPipe implements PipeTransform {
transform(items: any[], args: any[]): any {
return items.filter(definitions => definitions.isHidden);
}
}
在我的模板中,我只过滤集合(为简洁起见省略):
<thead class="table-inverse">
<tr>
<th *ngFor="let item of (items.columnHeaders | filterHeaders)">
<span>{{item.headerName}}</span>
</th>
</tr>
</thead>
我的组件在ngOnInit 上获取包含标题的数据:
export class TableComponent {
items: any = [];
constructor(private service: DataService) {
}
ngOnInit() {
this.service.getData()
.subscribe((data: any) => this.items = data);
}
}
但是,当我加载页面时,items.filter 返回一个错误,因为items 仍然未定义。我应该在我的组件中做些什么来确保管道在运行时有项目吗?
【问题讨论】:
标签: angular