1

我正在尝试使用 Sencha Touch 编写应用程序。对于项目列表,我创建了一个 NestedList,它显示来自 TreeStore 的节点,它直接将其节点作为对象列表获取。根据用户的登录状态,我想从列表中过滤掉一些节点。

我的设置如下:

//This is the filter function
var lpFilter = new Ext.util.Filter({
  filterFn: function(item) {
    return item.get('type') == 'text';
  }
});

//Create the TreeStore
var myTreeStore = Ext.create('Ext.data.TreeStore', {
  fields: [
    'title','content', 'type', 'xtype', {name: 'leaf', defaultValue: true}
  ],
  root: {
    leaf: false
  },
  filters: [
    lpFilter
  ]
});

//Add the data
myTreeStore.setData(media);

//Nestedlist
var myList = new Ext.NestedList({
  title: 'Mediathek',
  iconCls: 'star',
  displayField: 'title',
  [...]
  store: myTreeStore
});

当我运行应用程序时,数据被过滤,商店只有 2 个项目(而不是 5 个),但我的 Nestedlist 仍然显示所有项目。

Nestedlist 是否只是忽略了我的过滤并使用了商店的“全部”属性?还是我以错误的方式使用过滤器?

4

0 回答 0