私の ExtJS アプリケーションでは、ページを変更したときにストアをリセットしたいと考えています。つまり、古いビュー/ページからのフィルター、グループ化、またはリスナーは必要ありません。
Currentyl ビューのストアを次のように設定しています。
{
xtype: 'admingrid',
...
columns: [
...
],
store: 'appname.store.administration.User'
}
私はそのように店をロードしています:
onAfterRender: function() {
//load all users
this.setUserStore(this.getUserGrid().getStore());
this.getUserStore().load();
},
場合によっては、次のようになります。
onAfterRender: function() {
//load all users
this.setUserStore(Ext.StoreManager.lookup('appname.store.administration.User'));
this.getUserStore().load();
},
私のページはすべて Base ビューを拡張するので、次のようなことをするだけだと思いました:
Ext.define("appname.view.Base", {
extend: 'Ext.panel.Panel',
ui: 'basepanel',
padding: 15,
contentPaddingProperty: 'padding',
listeners: {
beforedestroy: function() {
Ext.StoreManager.each(function (item, index, len) {
item.clearFilter(true); // param: suppressEvent
item.clearGrouping();
item.clearListeners(); // this will also remove managed listeners
});
}
}
});
これにより、最初にビューに入るときにグリッドが空になることがあります...理由がわかりません..ビューに2回目または3回目に入ると、エントリを含むグリッドが表示されます..
そのようなことを達成するための一般的な方法はありますか? 私が間違っていることは何ですか?なぜこれが起こっているのかわかりません。