我正在创建一个应用程序,您可以通过单击类别按钮来过滤项目。大多数商品都有多个类别。当按下类别按钮时,我创建了一个包含按下的类别的数组。
每个要过滤的项目都有一个它所属类别的数组。 例如:
项目1 - 类别:动物,棕色,尾巴
第2项 - 类别:动物,白色
第3项 - 类别:人类,高大
当我按下类别按钮" animal"时,它只显示项目1和2,然后当我按下棕色时,它仅显示项目1.当我取消选择所有项目并按此顺序时 - 动物,尾巴。它没有显示任何内容:/
我已经看过一些类似的主题,但是没有找到一个可行的方法。
是否可以在不创建自定义过滤器的情况下完成?
答案 0 :(得分:1)
如果您改变主意添加“自定义过滤器”,这里应该有效。
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="35"
android:orientation="horizontal"
android:gravity="center"
android:weightSum="100">
这将像任何angular.module('myApp').filter('matchesAll', function() {
return function(items, relevant, property) {
if(!(relevant && relevant.length)){
return items; // No categories to compare with, return everything
}
property = property || 'categories'; // By default look at categories
return items.filter(function(item) {
var itemProps = item[property];
return relevant.every(function(relevantCategory){
return itemProps.indexOf(relevantCategory) !== -1;
});
});
};
});
过滤器一样使用:
ngRepeat
JSFiddle演示它:http://jsfiddle.net/3an5wr0b/