我是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());
答案 0 :(得分:1)
Model#fetch
根本不返回模型,它会返回jqXHR
:
抓取
model.fetch([options])
通过委派 Backbone.sync 从服务器重置模型的状态。返回 jqXHR 。
实际模型数据存储在my.attributes
:
属性
model.attributes
属性属性是包含模型状态[...]的内部哈希。
并且通常通过toJSON
访问:
toJSON
model.toJSON([options])
为JSON字符串化返回模型的属性的浅表副本。这可以在发送到服务器之前用于持久性,序列化或扩充。
但是,如您所知,fetch
是一个AJAX调用,因此my.attributes
和my.toJSON()
在基础AJAX调用完成之前不会给您任何有用的信息。检测到这种情况的最简单方法是使用success
的{{1}}回调选项:
fetch
您还可以使用my.fetch({
success: function(my) {
console.log('Fetch worked: ', my.toJSON());
}
});
回调。或者,您可以使用error
上的done
,fail
或always
函数:
jqXHR
答案 1 :(得分:1)
您还可以使用以下代码检查数据:
my.fetch({
success: function(data) {
console.log(data);
}
});