我有一个Sencha Touch App,它使用REST代理将REST服务中的数据加载到商店中。此存储的load事件还会将记录复制到localstorage存储中。这是因为应用程序需要在脱机模式下工作。我试图将对localstorage中的记录所做的更改写回REST服务,但还没有设法找出如何同步localstorage存储和使用REST代理的存储。有什么想法吗?
我按照此处给出的示例http://www.sencha.com/learn/taking-sencha-touch-apps-offline/,但它仅涵盖了离线数据的只读方案。
答案 0 :(得分:0)
您需要在localstorage
商店的保存事件中实施类似的内容,将更改复制到onlineStore
(就像您从onlineStore
复制新项目一样加载时offlineStore
。
答案 1 :(得分:0)
@Lyle Pratt对于从您的"离线"复制功能是正确的。存储到您的"在线"商店。但为了进一步扩展它,我将在您的离线商店内创建一个功能,用于将您的离线数据保存或复制到您的在线商店。
Ext.define('MyProject.store.OfflineMessage', {
config: {
model: 'MyProject.model.Message' //this should be the same with your online store
},
sync: function(){
var me = this,
onlineMessageStore = Ext.getStore('OnlineMessage'), //you can get your current store or just create a new one
items = me.getData().items;
onlineMessageStore.setData(items);
onlineMessageStore.sync();
}
});
另一方面,您还可以为在线商店创建相同的功能,以便将在线数据保存到离线商店。