0

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

2 回答 2

0

好的,所以缺少的是我必须将键“primaryKey”添加到我的 hasMany 和 belongsTo 关系中。就我而言,我有 idProperty: 'myCustomId',但仅此一项不适用于关联模型。我必须将 primaryKey: 'myCustomId' 添加到我的 hasMany 和 belongsTo 关系中。

于 2014-08-29T00:05:16.587 回答
0

您应该能够使用 messagesStore.sync() :

将 Store 与其代理同步。这要求代理将存储中的任何新的、更新的和删除的记录批处理在一起,并在每个操作完成时更新存储的内部记录表示。

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

于 2014-08-27T02:49:27.710 回答