在我的 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();
},
我所有的页面都扩展了我的基本视图,所以我想我只是做这样的事情:
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
});
}
}
});
这将导致当我第一次进入视图时网格有时是空的......我不明白为什么......当我第二次或有时第三次进入视图时,它确实显示了带有条目的网格..
有没有一种通用的方法来完成这样的事情?我做错了什么?我不明白为什么会这样。