в моем приложении ExtJS. Я хочу сбросить настройки при изменении страницы. Это означает, что я не хочу, чтобы какие-либо фильтры, группы или слушатели были на любом старом представлении/странице.ExtJS 4.2.1 сброс магазинов в ViewChange
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
});
}
}
});
это приведет к тому, что сетка иногда пуста, когда я впервые вхожу в представление ... Я не понимаю, почему .. когда я вхожу в представление второго или иногда в третий раз показывает сетку с записями.
Есть ли общий способ совершить такую вещь? Что я делаю неправильно? Я не понимаю, почему это происходит.
Я думаю, что он не должен что-то делать с моим событием .. если я удалю событие clearListeners(), все тоже отлично работает .. но что, если у меня есть некоторые события «beforeload» в моем магазине, и я тоже хочу их очистить .. не зная, какой регистратор событий зарегистрирован. – JuHwon