如何在 dstore 上应用多个过滤器?
How to apply multiple filters on a dstore?
假设 dstore
有名字、姓氏和年龄的记录。现在,我想要名字为 "Name1" 或年龄 = 25 的记录。如何在 dstore
中执行此操作?
如果我做,
recordStore.filter({name: 'Name1'}, {age: 25});
然后它 returns 名称为 "Name1" AND Age=25.
的记录
另外一个问题,在我的dstore
的记录中,也有一个数组(由颜色组成)。我想根据用户选择的颜色过滤结果。我面临的问题是 dstore.filter()
检查值的完全匹配,但即使数组中的一个值与所选值匹配,我也想保留记录。如何做到这一点?
您需要像这样扩展过滤器功能:
recordStore.filter( function (object) {
return object.Name === 'Name1' || object.age === 25;
});
终于想通了!
Filter
对象可以从 store
创建,然后用作 store
.
的 filter
方法的参数
对于两个查询的 OR/AND:
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
要匹配数组中的一个值:
colorFilter= recordStoreFilter.contains({'color', 'red'})
colorData= recordStore.filter(colorFilter)
//This will give the records that have color red in the array.
有关更多信息,请参阅 here。
假设 dstore
有名字、姓氏和年龄的记录。现在,我想要名字为 "Name1" 或年龄 = 25 的记录。如何在 dstore
中执行此操作?
如果我做,
recordStore.filter({name: 'Name1'}, {age: 25});
然后它 returns 名称为 "Name1" AND Age=25.
另外一个问题,在我的dstore
的记录中,也有一个数组(由颜色组成)。我想根据用户选择的颜色过滤结果。我面临的问题是 dstore.filter()
检查值的完全匹配,但即使数组中的一个值与所选值匹配,我也想保留记录。如何做到这一点?
您需要像这样扩展过滤器功能:
recordStore.filter( function (object) {
return object.Name === 'Name1' || object.age === 25;
});
终于想通了!
Filter
对象可以从 store
创建,然后用作 store
.
filter
方法的参数
对于两个查询的 OR/AND:
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
要匹配数组中的一个值:
colorFilter= recordStoreFilter.contains({'color', 'red'})
colorData= recordStore.filter(colorFilter)
//This will give the records that have color red in the array.
有关更多信息,请参阅 here。