假设dstore
包含名字,姓氏和年龄的记录。现在,我想要名字为“Name1”或年龄= 25的记录。如何在dstore
中执行此操作?
如果我做,
recordStore.filter({name: 'Name1'}, {age: 25});
然后它返回名称为“Name1”且年龄= 25的记录。
另一个问题,在我dstore
的记录中,还有一个数组(包含颜色)。我想根据用户选择的颜色过滤结果。我面临的问题是dstore.filter()
检查值的完全匹配,但是如果数组中的一个值与所选值匹配,我想保留记录。怎么做?
答案 0 :(得分:1)
您需要像这样扩展过滤器功能:
recordStore.filter( function (object) {
return object.Name === 'Name1' || object.age === 25;
});
答案 1 :(得分:1)
终于明白了!
可以从Filter
创建 store
个对象,然后将其用作filter
的{{1}}方法的参数。
进行两个查询的OR / AND:
store
匹配数组中的一个值:
recordStoreFilter= new recordStore.Filter()
name1Filter= recordStoreFilter.eq('name': 'Name1')
age25Filter= recordStoreFilter.eq('age', 25)
unionFilter= recordStoreFilter.or(name1Filter, age25Filter)
intersectionFilter= recordStoreFilter.and(name1Filter, age25Filter)
unionData= recordStore.filter(unionFilter)
intersectionData= recordStore.filter(intersectionFilter)
//Set using the following
recordGrid.set('collection', unionData) //or intersectionData
有关详情,请参阅here。