我正在尝试使用 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 是否只是忽略了我的过滤并使用了商店的“全部”属性?还是我以错误的方式使用过滤器?