1

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" プロパティを使用していますか? それともフィルターの使い方が悪いのでしょうか?

4

0 に答える 0