JSFiddle:http://jsfiddle.net/ADukg/16368/AngularJS Ng-Repeat - JSONオブジェクトのプロパティで項目をフィルタリングする複数のカスタムフィルタ
オブジェクトのJSONプロパティが選択したオプションと一致する場合、複数のフィルタでng-repeatリスト内のアイテムをフィルタリングしようとしています。
「未読」フィルタが選択されている場合、各jsonオブジェクトの「未読」プロパティがtrueと等しい項目のみが表示され、同様に重要度の高いフィルタが表示されます。
また、この2つのフィルタを組み合わせることで、フィルタが両方選択されているときに、未読と重要度の高いプロパティがtrueに等しいアイテムのみがリストに表示されるようにします。
私はフィルタチェックボックスのモデルを使ったところでJSFiddleで基本的な設定をしていますが、これらのフィルタをリストに実装する方法をしばらく探していて、方法については混乱しています私はこのシナリオに必要なものをやります。
HTML:
<div>
<label for="filterByAllCheckbox">Filter by All </label>
<input ng-model="filters.all" ng-change="filterByAll()" type="checkbox" id="filterByAllCheckbox" ng-disabled="filters.all">
</div>
<div>
<label for="filterByUnreadCheckbox">Filter by Unread </label>
<input ng-model="filters.unread" ng-change="manageFilters()" type="checkbox" id="filterByUnreadCheckbox">
</div>
<div>
<label for="filterByHighImportanceCheckbox">Filter by High Importance </label>
<input ng-model="filters.highImportance" ng-change="manageFilters()" type="checkbox" id="filterByHighImportanceCheckbox">
</div>
<br>
<ul>
<b>NOTIFICATIONS</b>
<li ng-repeat="notification in notifications">
{{notification.title}}
</li>
</ul>
ええ、私はこれのようなものを考えましたが、実際にはjsフィルタメソッドを探していました –
ありがとうございました。これは非常に近いですが、高い重要度のみを選択した場合は、項目を表示しませんが、真に重要度の高いプロパティーをすべて表示する必要があります。両方のフィルタが選択されている場合、未読の重要度の高い通知のみが表示されます。高重要度フィルタに欠陥があるように見える –
必要に応じてフィルタif文を修正することができます。あなたが高い重要度と未読をチェックするか、または重要度を高くして未読でないかをチェックすると、私が行った実装は補完的です。あなたが高い重要性をチェックする場合、あなたは読書のプロパティの気にしない? – lzagkaretos