2014-03-06 23 views
0

我對Backbone非常陌生,並且試圖瞭解如何使用它來使用ajax獲取數據。骨幹 - 將模型的結果記錄到控制檯

我想記錄數據到控制檯,但不知道如何。這裏是我的代碼至今:

var MyModel = Backbone.Model.extend({ 
    defaults : { 
    name : 'undefined' 
    }, 

    url : 'https://api.github.com/users/xxxxxxx' 
}); 

var my = new MyModel(); 

//logs all the properties of fetch(). How can I get only the data? 
console.log(my.fetch()); 

回答

1

Model#fetch不返回模式可言,它返回一個jqXHR

從取model.fetch([options])

重置模型的狀態該服務器通過委託給Backbone.sync。返回jqXHR

實際模型數據存儲在my.attributes

屬性model.attributes

屬性屬性是包含模型狀態的內部散[...]。

而這通常是通過toJSON訪問:

的toJSONmodel.toJSON([options])

迴歸模型的屬性的JSON字符串化淺表副本。這可以在發送到服務器之前用於持久性,序列化或擴充。

但是,如你所知,fetch是AJAX調用,直到底層AJAX調用完成my.attributesmy.toJSON()不會給你任何用處。檢測到的最簡單方法是使用success回調選項fetch

my.fetch({ 
    success: function(my) { 
     console.log('Fetch worked: ', my.toJSON()); 
    } 
}); 

還有一個error回調就可以使用。另外,您也可以使用上donefail,或always功能jqXHR

my.fetch().always(function(data, status) { 
    console.log('fetch finished: ', status, my.toJSON()); 

}); 
+0

謝謝你這麼多的很好的解釋。我真的剛剛開始學習骨幹,這真的很有幫助。 – Mdd

1

您還可以使用下面的代碼來檢查數據:

my.fetch({ 
      success: function(data) { 
       console.log(data); 
      } 
     });