如何通过WebSocket更新模型?

时间:2015-01-19 17:02:26

标签: ember.js ember-data

我尝试通过WebSocket更新我的模型,我是以下一个方式创建的:

socket.on('message', function (jsonObj) {
   if (jsonObj.action && jsonObj.action == 'consultationReload')
    {
        self.store.all('consultation').forEach(function(c) {
            if (c.get('id') == jsonObj.consultationId) {
                c.reload();
            }
        });
        return;
    }

c.reload()向API发出请求。我认为这是额外的请求,我可以将这些数据附加到来自websocket的消息。但问题是如何使用websocket中的这些json数据重新加载模型?

1 个答案:

答案 0 :(得分:0)

而不是从商店获取所有记录,只需将push记录到商店中。将更新商店中已有的任何记录,任何不存在的记录都将被插入。

this.store.push('consultation', {
  id: 2,
  title: "Calgary b/w I Can't Make You Love Me/Nick Of Time",
  artist: "Bon Iver",
  songCount: 2
});

http://emberjs.com/guides/models/pushing-records-into-the-store/

http://emberjs.com/api/data/classes/DS.Store.html#method_push

http://emberjs.com/api/data/classes/DS.Store.html#method_pushMany