1

假设 adstore有 First name、Last name 和 Age 的记录。现在,我想要名字为“Name1”或年龄= 25 的记录。我该怎么做dstore?如果我这样做, recordStore.filter({name: 'Name1'}, {age: 25}); 那么它会返回名称为“Name1”和 Age=25 的记录。

另一个问题,在 my 的记录中dstore,也有一个数组(由颜色组成)。我想根据用户选择的颜色过滤结果。我面临的问题是dstore.filter()检查值的完全匹配,但是如果数组中的一个值与所选值匹配,我想保留记录。这该怎么做?

4

2 回答 2

1

您将需要像这样扩展过滤器功能:

recordStore.filter( function (object) {
    return object.Name === 'Name1' || object.age === 25;
});
于 2016-01-18T17:01:13.127 回答
1

终于想通了!

Filter可以从 中创建对象store,然后将其用作 的filter方法的参数store

对两个查询进行 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.

有关更多信息,请参见此处

于 2016-03-11T07:52:43.173 回答