ExtJs4混合集合筛选

ExtJs4混合集合筛选,extjs,filter,extjs4,Extjs,Filter,Extjs4,你好。 筛选MixedCollection后,返回的集合为空,尽管存在一个user_id==1的结果。我错过什么了吗? 谢谢。您正在筛选您的收藏。但是,您需要使用Ext.util.Filter对象筛选您的MixedCollection。下面是一个例子: var pmStore = new storeOfUsers(); // storeOfUsers is an Ext.data.DirectStore with autoLoad: true console.log(pmStore.data);

你好。
筛选MixedCollection后,返回的集合为空,尽管存在一个user_id==1的结果。我错过什么了吗?

谢谢。

您正在筛选您的收藏。但是,您需要使用Ext.util.Filter对象筛选您的MixedCollection。下面是一个例子:

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

我猜问题在于存储的异步加载

您可能是在该商店入住之前对其进行了筛选。在过去的例子中,console.log()错误地显示了同步数据(就好像在调用完成后更新了日志一样)


我会尝试取消自动加载,并通过回调进行手动加载,在回调中过滤数据。

我猜问题在于存储的异步加载。您可能是在该商店入住之前对其进行了筛选。在过去的例子中,
console.log()
显示同步数据,就好像调用完成后日志会更新一样。我会尝试取消自动加载,并通过回调来执行手动加载,在回调中过滤data.console.log(pmStore.data);//显示长度为6 console.log(pmStore.data.length)的对象;//伊扎基,你是对的“console.log”显示当前对象状态,而不是调用“console.log”时的状态。我只是试着什么都不过滤。谢谢谢谢你,约翰!但集合长度仍然是0。还尝试了不同的选项,如anyMatch和exactMatch。。。
//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);