2017-10-23 3 views
-2

私は単純な検索テキストフィールドを実装しようとしています。 名前と電話番号をフィルタリングして連絡先を表示したい。私は手紙をタイプするたびに、名前にその文字を持つ連絡先の名前をすべて表示しますが、各連絡先(住所、市、メールなど)の他の属性も検索します。連絡先の名前には文字は含まれていませんが、他の属性には文字が含まれているため、まだ表示されています。 明らかに、それは私が実装しようとしているものではありません。AngularJSでデータをフィルタリングする方法

名前と電話番号の両方で連絡先をフィルタできるようにしたいと思います。

<input type="text" ng-model="query" placeholder="search"/> 
<div ng-repeat="c in contacts|filter: query"> ...<\div> 

どうすればこの問題を解決できますか?

答えて

1

を支援するための おかげでこれは、1つのフィールドに基づいてフィルタリングするのは簡単です:ちょうど| filter:{name: query}

にあなたのフィルタを変更、彼らは両方が一致する必要があれば、2つのフィールドに基づいてフィルタリングするのは簡単です:ちょうど| filter:{name: query, phoneNumber: query}にあなたのフィルタを変更します。

のいずれかを一致させると、2つのフィールドに基づいてフィルタリングするのが難しくなります。Here's someoneと同じ質問がありました。最初のレスポンスは単純なハックを持っていて、ちょうど遊んでいればうまく動作しますが、より多くのデータがある場合はthis blog postを使いたいと思うでしょう。

ところで、あなたの質問は、Googleにとってはあまり難しくないので、下落している可能性がありました。 [anglejs filter by field]を検索すると途中で止まってしまい、[ng-repeat filter multiple fields]は私が上にリンクした結果に私を連れて行きました。

関連する問題