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()
的内容,否则您指的是同一个对象。
我真的很想了解这里的概念(而不是接收代码解决方案)。
我有一个由提取填充的集合。我想从集合中取出一个模型,从服务器获取最新数据,然后将来自服务器的数据放回模型的集合版本中。
用 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()
的内容,否则您指的是同一个对象。