0
var pmStore = new storeOfUsers(); // storeOfUsers is an Ext.data.DirectStore with autoLoad: true
console.log(pmStore.data); // is an Ext.util.MixedCollection with 6 items including user_id == 1

var pms = pmStore.data.filter('user_id', 1);
console.log(pms); //is an Ext.util.MixedCollection with length == 0

你好。
过滤 MixedCollection 后,返回的集合为空,尽管结果为 user_id == 1。我错过了什么吗?
谢谢。

4

2 回答 2

0

您错误地过滤了您的集合,您需要使用 Ext.util.Filter 对象来过滤您的 MixedCollection。这是一个例子:

//your store
var pmStore = new storeOfUsers();

//Create the filter 
var lFilter = new Ext.util.Filter({
    property: 'user_id',
    value   : 1
});

//Filter the data
var pms = pmStore.data.filter(lFilter);
于 2012-07-13T11:01:11.420 回答
0

我的猜测是问题是商店的异步加载。

您可能在商店被加载之前对其进行了过滤。过去我有一些实例,console.log() 错误地显示了同步数据(好像一旦调用完成,日志就会更新)。

我会尝试取消自动加载,并使用过滤数据的回调进行手动加载。

于 2012-07-13T13:03:26.193 回答