我试图弄清楚如何使一组模型与我的服务器保持同步。目前,我的代码看起来像这样,但它显然有一些问题......
var myCollection = Backbone.Collection.extend({
url: '/api/block',
...
sync: function() {
_.each(this.models, function(model) {
model.sync('create', model);
});
}
});
目前,当我在我的集合上调用同步时,它会遍历所有模型,并在每个模型上调用同步。我很惊讶,首先这不是 Backbone.Collection.sync 方法的默认行为。还是我误解了“同步收藏”应该做什么?
其次,我的model.sync('create', model);
台词有点奇怪。为什么我在模型本身上调用方法时必须传入模型?另外,我手动调用“创建”,这显然是错误的。“同步”不应该知道它是应该创建还是更新?
而且,“同步”不应该足够智能,可以对已从我的收藏中删除的任何模型调用“删除”吗?
我猜我应该考虑在我的模型上自定义同步方法,但我仍然对我正在做的事情感到困惑,这是不寻常的,需要我自定义这些同步方法。
我觉得我错过了关于同步的相当大的一点。