我有一个绑定到商店的列表。我有一个输入文本字段(想像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
}
答案 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关系。