如何在ionic2的virtualScroll中使用管道(过滤器)

How to use pipes (filters) with ionic2's virtualScroll

我有一个过滤器(管道),我想在 VirtualScroll 上使用。在我使用 VirtualScroll 之前,我在 ion-item 上使用以下公式进行了正常的 for 循环:

<ion-item *ngFor="#item of items | myPipe : criteria">....</ion-item>

是否也可以将管道与 <ion-item *virtualItem="#item" > ...</ion-item> 一起使用?还是我必须改为在控制器中执行列表中的管道?

我最终在控制器中使用了管道,创建了一个 filteredItems 列表,如下所示:

filteredItems = new MyPipe().transform(this.items, ["criteria"]);

然后,我在 VirtualScroll 中显示 filteredItems 而不是原始列表:

<ion-list [virtualScroll]="filteredItems">
  <ion-item *virtualItem="#item">
  </ion-item>
</ion-list>

这是管道过滤器与 angular rc3 一起使用的示例。

<ion-list [virtualScroll]="items | SearchPipe:searchBar | SortItems:orderType">
    <button ion-item *virtualItem="let item">
        <span [innerHtml]='item.Name | BoldPipe:searchbar'></span>
        <span [innerHtml]='item.Code | BoldPipe:searchbar'></span>
    </button>
</ion-list>

管道应该应用于列表而不是项目。

John 发布的答案(一个很好的答案)但您必须在每次更改检测时激活它,而不是将其作为渲染的一部分