簡體   English   中英

如何覆蓋Backbone集合的同步方法(而不是模型)?

[英]How do you override the sync method for a Backbone collection (as opposed to a model)?

我有一個文件夾樹,它根據您單擊的文件夾獲取集合。 如果用戶改變主意並單擊另一個文件夾,我想中止之前的提取。 由於這是在項目中的多個位置發生的,我想覆蓋集合上的sync方法。 我見過很多模型同步的例子,但不是集合。 我還想保留查詢字符串params。 官方文檔說明集合也有同步方法,但我從未見過這樣做過。 請指出我正確的方向。 提前致謝。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM