Extjs商店过滤器不起作用

时间:2017-06-16 10:43:42

标签: javascript extjs filter store

我想过滤我的商店,但它不起作用:

me.store.filter([{
    filterFn: function(storeItem) {
        Ext.iterate(storeItem.data, function(item) {
            if (item === me.mainMenuItem) {
                if (typeof(storeItem.data[item]) === 'number') {
                    //console.log(storeItem); returns what I want
                    return storeItem;
                }
            }
        });
    }
}]);

当我使用这个过滤器时,即使很少的元素满足我的条件,我的商店也是空的。我怎样才能使它发挥作用?

1 个答案:

答案 0 :(得分:1)

filterFn要求您返回一个布尔值,指示值是否匹配。目前,您还没有从filterFn返回任何内容,而是在内部迭代函数上返回一个值,这在此处并不常用。

你想做这样的事情:

me.store.filter([{
    filterFn: function(rec) {
        var data = rec.data,
            key;

        for (key in data) {
            if (key === me.mainMenuItem && typeof data[key] === 'number') {
                return true;
            }
        }
        return false;
    }
}]);