Backbone.js 我想 model.fetch 并将数据反映回源集合

Backbone.js I want to do model.fetch and have the data reflected back in the source collection

我真的很想了解这里的概念(而不是接收代码解决方案)。

我有一个由提取填充的集合。我想从集合中取出一个模型,从服务器获取最新数据,然后将来自服务器的数据放回模型的集合版本中。

用 Backbones 文档中的术语重申:我想确保我拥有最新的服务器状态。我不会关心触发的 "change" 事件,因为我预计模型几乎每次都会更改。 Fetch 从服务器重置模型的状态,所以我应该可以做这样的事情,对吧?:

[伪]

model.fetch();

在获取成功处理程序中调用其中之一:

this: collection.add(model, {merge: true});
..or: collection.set(model);         

如果这还不足以完成我的任务,我缺少什么概念?

编辑 - 添加详细信息

我调用 fetch():

controller.model.fetch({
    success: function(model){
        console.log(model);
        updateView();
    },
    error: function(){
        console.error('error fetching contact model');
    }
});

成功回调在 fetch() 之后触发。我可以看到模型有新数据并且图像已被修改并且需要 re-downloaded:

当我调用更新视图的函数时,没有任何明显变化,因为最新数据仍在 "changed" 成员中......看起来。从 "changed" 获取最新数据到 "attributes" 成员的标准方法是什么?文档中是否明确说明了这一点?

没有"collection's version of the model"

如果您引用集合中的模型并调用 fetch,则无需执行任何其他操作。 此模型已经是集合的一部分,新数据将填充。

javascript 中的对象通过引用传递,因此除非您克隆它看到类似 model.clone() 的内容,否则您指的是同一个对象。