在extjs4中使用localstorageProvider和localstorageProxy

时间:2014-03-20 17:33:35

标签: extjs local-storage extjs4.2

我尝试使用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();

0 个答案:

没有答案