Extjs4 ExtJS-localStorage
我有“电影”模型,并将数据保存在Ext.data.Store中。电影显示在gridPanel中。给出搜索参数并单击按钮后,将重新加载存储 现在,我正在尝试使用本地存储。而是应该将数据保存在侦听器的函数中:Extjs4 ExtJS-localStorage,extjs4,local-storage,Extjs4,Local Storage,我有“电影”模型,并将数据保存在Ext.data.Store中。电影显示在gridPanel中。给出搜索参数并单击按钮后,将重新加载存储 现在,我正在尝试使用本地存储。而是应该将数据保存在侦听器的函数中: listeners: { 'click': function() { movieDataStore.sync(); var textValue = Ext.getCmp("searc
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));
}
}
} ]
});
?
我有一个名为“电影模型”的模型。获取对象的正确方法是movieDataStore.getAt(0)
如何检查是否有缓存的搜索结果(并加载到movieDataStore/movieGridPanel)?您可以通过调用静态创建方法创建本地存储的实例。以下是您如何做到这一点:
var myLocalStore = Ext.state.LocalStorageProvider.create();
可以使用和方法存储和检索值。以下是一个例子:
myLocalStore.set('srhTxt',value);
如果有许多参数,可以将它们组合成一个对象并存储。最后,我使用localStorage变量解决了这个问题:
var textValue = Ext.getCmp("searchFieldId").getValue();
var tmpRecord = localStorage.getItem(textValue);
if(tmpRecord != null) {
...
} else {
var movieRecord = {
title : data.Title,
year : data.Year,
genre : data.Genre,
plot : data.Plot,
poster : data.Poster
};
localStorage.setItem(textValue, JSON.stringify(movieRecord));
...
}
谢谢,@Abdel Olakara的解释。我已经使用
LocalStorageProvider