こんな感じのデータがあります
[
{id: 1234,
Name: 'John',
Tags: ['tag1', 'tag2']
},
{id: 1235,
Name: 'Mike',
Tags: ['tag1', 'tag3']
}
]
検索バーに入力してデータをフィルタリングし、関連するタグを検索できるようにしたいです。角度 1 にはこのための組み込みフィルター パイプがありましたが、角度 2 では削除されたようです。カスタム パイプを調べてきましたが、ループするネストされたループを使用することしか考えられません。次に、すべてのオブジェクトがタグをループします。これは私の考えが間違っているのでしょうか。これを行う簡単な方法、またはこれに対応する組み込み関数はありますか?
通常の JavaScript API を使用して、その動作を取得できます。
data = [
{id: 1234,
Name: 'John',
Tags: ['tag1', 'tag2']
},
{id: 1235,
Name: 'Mike',
Tags: ['tag1', 'tag3']
}
];
filterDataByTag(searchTerm: string) {
// filter the data array, based on some condition
return this.data.filter(item => {
// only include an item in the filtered results
// if that item's Tags property includes the searchTerm
// includes is a built in array method in ES2016
return item.Tags.includes(searchTerm);
});
}
この例ではdata
、 のコーディングに苦労していますが、状況に合わせて調整できます。重要な点は、関数がdata
searchTerm に基づいてフィルターされたリストを返すことです。したがって、フィルターされたリストを更新するたびに(たとえば、検索フィールドの入力イベントで)このメソッドを呼び出すことができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加