Sencha Touch背景同步商店

时间:2014-08-27 02:30:32

标签: extjs store sencha-touch-2.3

我有一个绑定到商店的列表。我有一个输入文本字段(想像UX这样的聊天),当用户点击按钮时,我会这样做:

var newMessageData = {
    text: textMessage
};
var message = Ext.create('MyApp.model.Message', newMessageData);
messagesStore.add(message); // At this point, the message shows up in my list
message.save(); // On a successful save, an identical message shows up again in this same list

如何实现这一点,因此消息一开始只显示一次(在用户输入内容后立即显示),然后记录本身只在后台与服务器同步。

非常感谢帮助!谢谢!

修改 我的模型定义非常简单,包括简单字段和一些转换字段+自定义idProperty:

idProperty: 'objectId',
{
    name: 'objectId',
    persist: false
}

2 个答案:

答案 0 :(得分:0)

您应该能够使用messagesStore.sync(),其中包含:

  

将商店与其代理同步。这要求代理批处理   将商店中任何新的,更新的和删除的记录放在一起,进行更新   商店在每次操作时对记录的内部表示   完成。

http://docs.sencha.com/touch/2.4.0/#!/api/Ext.data.Store-method-sync

答案 1 :(得分:0)

好的,所以缺少的是我必须添加密钥" primaryKey"我的hasMany和belongsTo关系。就我而言,我有idProperty:' myCustomId',但仅此一项对相关模型不起作用。我不得不添加primaryKey:' myCustomId'我的hasMany和belongsTo关系。