2012-05-25 46 views

回答

2

我相信只有在更改模型時纔會觸發「同步」事件。因此,如果您創建,更新或刪除模型,則「同步」事件將觸發。

在你的情況下,我認爲你想聽集合上的「重置」事件。

編輯: 如果您正在設置{add:true}選項,那麼在添加完所有模型後,不會有單個Backbone事件觸發。您有幾種選擇:

  1. 只聽add事件,並期望它被反覆
  2. 稱爲通過使用已使用_.debounce()功能去抖處理程序模擬一個事件。
  3. fetch()的返回值是一個jQuery XMLHttpRequest對象。它實現了jQuery Deferred接口。所以你可以聽完這個結束。例如:

    myCollection.fetch({add:true}).done(function(){ 
        myView.render(); //or whatever 
    }); 
    
+0

重置事件不適合我的需要,因爲我使用add:true參數調用fetch。 –

5

的解決方案是在作爲PARAM抓取方法傳遞「成功」回調maunually火了同步事件。

this.collection.fetch({add: true, success: function(collection, response){ 
      collection.trigger('sync'); 
}}); 
+1

作爲骨幹0.9.9添加成功回調同步觸發不再需要。來自http://backbonejs.org/#changelog在Backbone.sync中統一「同步」和「錯誤」事件。無論成功或錯誤回調的存在,它們現在都會被觸發。 –