4

我有一个文件夹树,它根据您单击的文件夹获取集合。如果用户改变主意并单击另一个文件夹,我想中止先前的提取。由于这种情况发生在项目中的多个地方,我想覆盖集合上的同步方法。我见过很多模型同步的例子,但不是集合。我还想保留查询字符串参数。官方文档指出集合也有一个同步方法,但我从未见过这样做。请指出我正确的方向。提前致谢。

4

1 回答 1

1

Backbone 的 Collection 同步看起来与 Model 的同步方法完全相同:

// Proxy `Backbone.sync` by default.
        sync: function() {
            return Backbone.sync.apply(this, arguments);
        },

那是因为两者都做同样的事情,他们只是“代理”了 Backbone.sync 方法。它们存在的原因是允许实现基于每种类型更改同步逻辑,而不必触及会影响项目中所有模型和集合的主要同步方法。

我建议为您的收藏做类似以下的事情,因为您可能不想自己模仿 Backbone 的同步逻辑,它为您做了很多事情,并且弄乱它可能会导致以后难以解决的问题。

var MyCollectionType = Backbone.Collection.extend({

    sync: function(method, model, options){
          //put your pre-sync logic here and call return; if you want to abort

         Backbone.Collection.prototype.sync.apply(this, arguments); //continue using backbone's collection sync 
    }
});
于 2014-08-01T11:46:12.543 回答