Extjs 商店过滤器不起作用

Extjs store filter doesn't work

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

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

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

filterFn 期望您 return 一个布尔值,指示该值是否匹配。目前,您没有 return 从 filterFn 获取任何内容,您 return 获取内部迭代函数的一个值,这在这里并不是很有用。

您想做这样的事情:

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