我真的希望在这里理解这个概念(而不是接收代码解决方案)。
我有一个由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已被修改,需要重新下载:
当我调用我的更新视图的功能时,没有任何明显的变化,因为最新的数据仍然在"更改"会员......似乎。什么是获取最新数据的标准方法?#34;更改"进入"属性"会员?这是在文档中明确说明的吗?
答案 0 :(得分:0)
该模型没有"集合的版本"
如果您在集合中引用模型并调用fetch,那么就不需要做任何其他事情了。 此模型已经是集合的一部分,新数据将填充。
javascript中的对象是通过引用传递的,所以除非你看到model.clone()
这样的东西,否则你指的是同一个对象。