Extjs4,动态过滤存储

Extjs4,动态过滤存储,extjs,filter,store,Extjs,Filter,Store,我使用ID列表动态填写数组: var allChildNodeIDs = []; Ext.getCmp('categoriesTreePanel').getRootNode().eachChild(function(Mynode){ allChildNodeIDs.push(Mynode.data.idCategorie); }); 然后我想根据数组中包含的所有ID筛选存储。例如,如果数组包含两个值,我希望对我的存储进行如下筛选: myStore.filterBy(fun

我使用ID列表动态填写数组:

var allChildNodeIDs = [];
Ext.getCmp('categoriesTreePanel').getRootNode().eachChild(function(Mynode){
        allChildNodeIDs.push(Mynode.data.idCategorie);
   });
然后我想根据数组中包含的所有ID筛选存储。例如,如果数组包含两个值,我希望对我的存储进行如下筛选:

myStore.filterBy(function(record) {
            return (record.get('idCategorie') == allChildNodeIDs [1] && record.get('idCategorie') == allChildNodeIDs [2]);
        });

但是数组是动态填充的,我不知道他的长度

示例中的排序函数似乎总是返回
false
。我假设您要做的是接受数组中存在的所有类别记录(即,您打算使用
|
而不是
&&

您可以使用数组的方法

例如:

myStore.filterBy(function(record) {
    return allChildNodeIDs.indexOf(record.get('idCategorie')) !== -1;
});