【问题标题】:Act upon response of AutoSync insert operation根据 AutoSync 插入操作的响应采取行动
【发布时间】:2014-05-22 15:02:15
【问题描述】:

我有一个 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 的商店?

【问题讨论】:

    标签: extjs extjs4 sync extjs4.2


    【解决方案1】:

    如果服务器发送了{"success":true, "data"[{"id":12, ....}]},那么你不需要做任何事情。最好的情况是服务器将它收到的完整记录与更新的数据一起发回(以相同的顺序)。分机负责其余的工作。

    【讨论】:

    【解决方案2】:

    如果您无法像@Saki 提到的那样更改服务器输出,您可以只监听 load 事件并在那里使用新 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

    【讨论】:

      猜你喜欢
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多