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

时间:2015-01-13 01:04:10

标签: javascript backbone.js

我真的希望在这里理解这个概念(而不是接收代码解决方案)。

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

使用Backbones文档中的术语进行重述:我希望确保我拥有最新的服务器状态。我不在乎"改变"触发的事件,因为我希望模型几乎每次都会发生变化。 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()之后触发成功回调。我可以看到模型有新数据,Image已被修改,需要重新下载:

ImageDateLastUpdated has changed

当我调用我的更新视图的功能时,没有任何明显的变化,因为最新的数据仍然在"更改"会员......似乎。什么是获取最新数据的标准方法?#34;更改"进入"属性"会员?这是在文档中明确说明的吗?

1 个答案:

答案 0 :(得分:0)

该模型没有"集合的版本"

如果您在集合中引用模型并调用fetch,那么就不需要做任何其他事情了。 此模型已经是集合的一部分,新数据将填充。

javascript中的对象是通过引用传递的,所以除非你看到model.clone()这样的东西,否则你指的是同一个对象。