Sencha Touch を使用してアプリをコーディングしようとしています。アイテムのリストについては、ノードをオブジェクトのリストとして直接取得する TreeStore からノードを表示する NestedList を作成しました。ユーザーのログイン状態に応じて、それらのノードの一部をリストから除外したいと考えています。
私のセットアップは次のとおりです。
//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
});
アプリを実行すると、データがフィルター処理され、ストアには (5 ではなく) 2 つのアイテムしかありませんが、Nestedlist にはすべてのアイテムが表示されます。
Nestedlist は単純にフィルタリングを無視し、ストアの "all" プロパティを使用していますか? それともフィルターの使い方が悪いのでしょうか?