我正在尝试使用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个),但我的嵌套列表仍然显示所有这些项目。
嵌套列表是否只是忽略了我的过滤并使用了商店的“all”属性? 或者我是否以错误的方式使用过滤器?