如何在Sencha Touch中的商店之间进行同步

时间:2011-07-25 06:55:15

标签: sencha-touch extjs

我有一个Sencha Touch App,它使用REST代理将REST服务中的数据加载到商店中。此存储的load事件还会将记录复制到localstorage存储中。这是因为应用程序需要在脱机模式下工作。我试图将对localstorage中的记录所做的更改写回REST服务,但还没有设法找出如何同步localstorage存储和使用REST代理的存储。有什么想法吗?

我按照此处给出的示例http://www.sencha.com/learn/taking-sencha-touch-apps-offline/,但它仅涵盖了离线数据的只读方案。

2 个答案:

答案 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();

    }
});

另一方面,您还可以为在线商店创建相同的功能,以便将在线数据保存到离线商店。