2017-06-16 59 views
0

我想筛选我的商店,但它不工作:ExtJS的存储滤波器不起作用

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

当我使用此过滤器我的商店是空的,即使几个要素fullfill我的条件。我怎样才能使它工作?

回答

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

谢谢!有用! –