无需完全刷新即可更新客户端模型

时间:2013-10-02 09:00:56

标签: ember.js ember-data

有没有办法将记录添加到客户端model并向Ember表明这些记录已经在服务器端?

所以,例如,如果我的Person模型有“Peter”和“Paul”的记录,但后来服务器添加“Mary”,我的客户端以非ember-data的方式意识到这一点。我希望能够让客户端以一种不会导致后续交互状态问题的方式添加“Mary”。

对于那些必须知道“用例”的人......我正在努力:

  • 首先请求给定model的findAll()从服务器提取整套数据
  • 在会话中调用后续请求自定义AJAX请求,该请求仅返回自上次请求以来结果集的差异
  • 我希望能够将这些差异推到客户端模型中而不会搞砸它的“状态”

1 个答案:

答案 0 :(得分:0)

有时我们使用来自websockets的数据在客户端上创建和更新EmberData记录。在这种情况下,更改已经在服务器上,因此我们只想在客户端上进行更改而不更改状态等,就像您描述的那样。

当我们在客户端创建新记录时,我们push将它们放入商店,例如:

this.store.push('post', { id: 1, body: 'Ember!' });

而且,当我们更新客户端上的现有记录时,我们在商店中update,例如:

this.store.update('post', { id: 1, hidden: true });