1

我试图弄清楚如何使一组模型与我的服务器保持同步。目前,我的代码看起来像这样,但它显然有一些问题......

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);台词有点奇怪。为什么我在模型本身上调用方法时必须传入模型?另外,我手动调用“创建”,这显然是错误的。“同步”不应该知道它是应该创建还是更新?

而且,“同步”不应该足够智能,可以对已从我的收藏中删除的任何模型调用“删除”吗?

我猜我应该考虑在我的模型上自定义同步方法,但我仍然对我正在做的事情感到困惑,这是不寻常的,需要我自定义这些同步方法。

我觉得我错过了关于同步的相当大的一点。

4

1 回答 1

0

为了记录,这个问题没有真正的答案,因为这是一个无效的问题!我误解了“同步”的用途。正如 KiT O 指出的那样,我现在正在使用 save 。

谢谢。

于 2013-11-10T04:24:37.880 回答