2013-03-26 65 views
1

所以我不知道什麼是最好的方式做到這一點的,目前我有一個Ajax調用,看起來有些像這樣傳遞到_this Ajax調用

var _this = this; 

     _.each(this.models, function (model) { 

      model.fetch({ 
       success: function(model, response) { 
        if (_.has(model.attributes, "settings")) {        
          _this.populateSettings(_this); 
         } 
        } 

在populateSettings方法,我需要一定的這個Backbone視圖上的屬性。我不確定如何獲得這些屬性,除了傳入每個特定的屬性,或傳入對此骨幹視圖的引用以及在populateSettings中,使用該引用來填充視圖。有一個更好的方法嗎?謝謝。

回答

2

一種選擇是在您的視圖中監聽model上的sync事件,以便每當model與來自服務器的數據成功同步時,您的視圖可以運行populateSettings

這可能是這個樣子:

model.on('sync', this.populateSettings, this) 

注意第三個參數,this。作爲第三個參數傳遞this設置事件處理程序將運行的上下文。從Backbone.js文檔:

要查看這在調用回調提供上下文值,通過可選的第三個參數:model.on('change', this.render, this)

如果您使用的事件偵聽器,這樣,你可以刪除全部選項均爲success:。而且您還可以找到changechange:[attribute]事件。