angular2のカスタムフィルターで質問があります。angle2でカスタムフィルターパイプを実行する方法
これは私のシナリオです:
マイページには、いくつかのカスタムコンポーネントが含まれています。 、私が送っ
import {Pipe, PipeTransform} from '@angular/core';
@Pipe({ name: 'filter' })
export class FilterPipe implements PipeTransform {
transform(values: any[], filter: any): any {
if (typeof filter !== "function") return values;
return values.filter((elem) => {
return filter(elem);
});
}
}
メインページでは、(componentA)
<md-list-item *ngFor="let item of items | filter : filter | sort: sort; let i = index" " >
<template [render]="itemTemplateRef" [context.item]="item"
[context.index]="index"></template>
</md-list-item>
も、フィルタはカスタムフィルタリングによって行われます。そのうちの一つは、ページの左側にあるデータを示す責任がありますコンポーネントAへの入力属性としての機能:ページの読み込み時に問題なく実行されます。チェックボックスをクリックしてフィルター条件を何度か変更したいのですが。 私は、入力値が変わると、純粋なフィルタリングが実行されるということを知っています。 しかし、自分のシナリオの入力値を強制的にフィルタリングするように変更する必要があるかどうかわかりません。
私は、チェックボックスのOnChangeイベントに以下の機能を追加したときに、何を濾過されていない。(項目は私のコンポーネント示すデータにバインドされた)任意のヘルプ
これは一般的な回避策です。良いか悪いかは、配列のコピーを作成することがどれほど費用がかかっているかによって決まります。 100個未満のアイテムがあり、それほど頻繁に変更されない場合はおそらく大丈夫です。数千ものアイテムがある場合、私のアプローチはもっと効率的です。 –