У меня есть модель «Кино», и я храню данные в Ext.data.Store. Фильмы отображаются в gridPanel. После задания параметров поиска и нажатия кнопки магазин перезагружается.
Теперь я пытаюсь использовать localStorage. Скорее следует сохранить данные внутри функции слушателя:
listeners: {
'click': function() {
movieDataStore.sync();
var textValue = Ext.getCmp("searchFieldId").getValue();
movieDataStore.load({
params : {
start : 0,
limit : 25,
t : textValue
}
});
}
}
Как мне это сделать?
ОБНОВЛЕНИЕ V1
Если бы я использовал Ext.state.LocalStorageProvider, я должен инициализировать переменную кэша следующим образом:
var movieLocalCacheStore = Ext.state.LocalStorageProvider.create();
var movieGridPanel = Ext.create('Ext.grid.Panel', {
store : movieDataStore,
tbar : [ 'Search', {
xtype : 'textfield',
name : 'searchField',
id: 'searchFieldId',
emptyText : 'Put movie title here',
hideLabel : true,
width : 200
}, {
xtype : 'button',
text : 'Search',
tooltip : 'Search for movie',
listeners: {
'click': function() {
var textValue = Ext.getCmp("searchFieldId").getValue();
movieDataStore.load({
params : {
start : 0,
limit : 25,
t : textValue
}
});
movieDataStore.sync();
movieGridPanel.getView().refresh();
//localStorage.setItem(textValue, movieDataStore.getAt(0));
movieLocalCacheStore.set(textValue, movieDataStore.getAt(0));
}
}
} ]
});
У меня есть модель с именем MovieModel. Это movieDataStore.getAt(0)
правильный способ получить объект?
Как проверить, есть ли кэшированные результаты поиска (и загрузить в movieDataStore / movieGridPanel)?