我尝试使用Ext.state.LocalStorageProvider和Ext.data.proxy.LocalStorage的组合,任何人都知道这样做的方法吗?
在我的应用程序中(使用extjs 4.2)我以这种方式初始化localStorageProvider:
var storageProvider = new Ext.state.LocalStorageProvider( {prefix: 'sample'});
Ext.state.Manager.setProvider(storageProvider);
使用此配置,如果我使用有状态组件,则全部保存并重新加载。 当我不得不在我的应用程序中引入具有动态集Tab的TabPanel时,问题就出现了,这取决于用户的本地会话。 这些选项卡包含一组我将要保存在LocalStorage代理dataStore中的信息,但是当我关闭tabpanel时,数据存储区将被删除,就像它是一个memoryproxy数据存储区一样。
有一种方法可以在由Ext.state.LocalStorageProvider管理的状态下传输datatstore吗?
任何形式的帮助都很有用。
[编辑]:这是我对localstorageStore的代码。
Ext.define('Book', {
fields: ['id', 'name', 'layout'],
extend: 'Ext.data.Model',
});
var layoutStore = Ext.create('Ext.data.Store', {
model: "Book",
proxy: {
type: 'localstorage',
id : 'sample'+'_books'
}
});
对于我商店中的添加元素,我使用:
store.add(newElement);
store.synch();
对于编辑元素,例如,只有一个字段,在商店中:
var record = store.getAt(index);
record.data.layout = encodeValue;
store.insert(index, record);
和删除元素我使用
store.remove(record);
store.sync();