根据AutoSync插入操作的响应行事

时间:2014-05-21 15:53:19

标签: extjs extjs4 sync extjs4.2

我的商店有autosync:true

加载商店时,我获得了完整的模型:

[{"id":11,"active":true,"name":"ABC","sens":7,"details":119,"type":13,"acl":false,"create":true,"delete":true,"owner":"alexander","members":"gustave\njerome"}]

将新模型同步到服务器时,我会发送"id":0,因此服务器知道必须创建一个新模型。然后,服务器将响应{"success":true,"data":[12],"debug":[]},其中12是新创建的条目的ID。

现在我必须为autoSync操作添加一个回调函数来修补我收到的回到商店的ID。

如果我手动同步,这很容易:

Ext.getStore("RightsStore").sync({
    success:function() {

    }
})

但是,如何将插入同步插入到与autoSync一起使用的商店中获得特殊成功或回调函数?

2 个答案:

答案 0 :(得分:1)

如果服务器发送了{"success":true, "data"[{"id":12, ....}]},那么您不需要做任何事情。最好的是服务器使用更新的数据(按相同顺序)发回它为CRUD操作收到的完整记录。 Ext负责其余部分。

答案 1 :(得分:1)

如果您无法像@Saki提到的那样更改服务器输出,您可以只听取加载事件并使用新ID更新记录。

store.on('load', me.loaded, me);

loaded: function(store, records) {

}

此处有更多详情 - http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.data.Store-event-load