对选项卡中的多个列表使用相同的过滤器

时间:2018-01-15 13:12:04

标签: angular filter

我在Angular4中有以下用例: 4个单独选项卡中的4个数据列表,全部显示在(可排序)表中。

在标签上方,我有一个下拉列表,您可以在其中选择一个过滤器,该过滤器应该过滤您当前显示的列表。

因此,在HTML模板中,每个标签看起来都是这样的:

<tr *ngFor="let item of firstTabItems | filterNameFilter: someType | orderBy: sortOrder">

现在,当我从下拉列表中选择过滤器时,它会对所有四个列表进行排序。但是用户只查看一次,每次选择过滤器时,它都会再次过滤所有四个列表。这在性能方面非常无用。基本上,我希望仅在选择选项卡时应用过滤器。

目前,过滤器看起来有点像这样(愚蠢的版本):

@Pipe({
    name : 'filterNameFilter'
})
export class filterNameFilter implements PipeTransform {
    constructor() { }

    transform(items: any[], some_type: string): any {
        return items.filter(item => item.type === some_type);
    }
}

知道如何才能最好地实现这一目标吗?

0 个答案:

没有答案