Collections 如何覆盖主干集合(相对于模型)的同步方法?

Collections 如何覆盖主干集合(相对于模型)的同步方法?,collections,backbone.js,sync,Collections,Backbone.js,Sync,我有一个文件夹树,它根据您单击的文件夹获取集合。如果用户改变主意并单击另一个文件夹,我想中止上一次获取。由于这在项目中的多个位置发生,因此我希望覆盖集合上的sync方法。我见过很多模型同步的例子,但不适用于集合。我还想保留查询字符串params。官方文档指出,集合也有一个同步方法,但我从未见过这样做。请给我指一下正确的方向。提前谢谢 主干网的集合同步看起来与模型的同步方法完全相同: // Proxy `Backbone.sync` by default. sync: functi

我有一个文件夹树,它根据您单击的文件夹获取集合。如果用户改变主意并单击另一个文件夹,我想中止上一次获取。由于这在项目中的多个位置发生,因此我希望覆盖集合上的sync方法。我见过很多模型同步的例子,但不适用于集合。我还想保留查询字符串params。官方文档指出,集合也有一个同步方法,但我从未见过这样做。请给我指一下正确的方向。提前谢谢

主干网的集合同步看起来与模型的同步方法完全相同:

// Proxy `Backbone.sync` by default.
        sync: function() {
            return Backbone.sync.apply(this, arguments);
        },
这是因为两者的作用相同,它们只是“代理”Backbone.sync方法。它们存在的原因是允许实现在每种类型的基础上更改同步逻辑,而不必接触将影响项目中所有模型和集合的主同步方法

我建议你为你的收藏做如下的事情,因为你可能不想自己模仿主干网的同步逻辑,它为你做了很多事情,弄乱它可能会导致以后很难解决的问题

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 
    }
});

重写集合的
sync
与对模型执行此操作相同,它们看起来都像
return(this.sync | | Backbone.sync).call(this,…)。唯一有趣的是,集合的
sync
将仅使用
'read'
作为
方法
参数进行调用。@mu但覆盖collection.sync以进行批保存等会很有趣