Extjs4,动态过滤存储

时间:2013-06-11 12:04:44

标签: extjs filter store

我使用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]);
        });

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

1 个答案:

答案 0 :(得分:1)

看起来你的例子中的排序函数总是会返回false。我假设您要做的是接受所有类别存在于数组中的记录(即,您打算使用||而不是&&)。

您可以使用Array的{​​{3}}方法。

示例:

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