Backbone - 将Model的结果记录到控制台

时间:2014-03-06 04:52:40

标签: backbone.js

我是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()); 

2 个答案:

答案 0 :(得分:1)

Model#fetch根本不返回模型,它会返回jqXHR

  

抓取 model.fetch([options])

     

通过委派 Backbone.sync 从服务器重置模型的状态。返回 jqXHR

实际模型数据存储在my.attributes

  

属性 model.attributes

     

属性属性是包含模型状态[...]的内部哈希。

并且通常通过toJSON访问:

  

toJSON model.toJSON([options])

     

为JSON字符串化返回模型的属性的浅表副本。这可以在发送到服务器之前用于持久性,序列化或扩充。

但是,如您所知,fetch是一个AJAX调用,因此my.attributesmy.toJSON()在基础AJAX调用完成之前不会给您任何有用的信息。检测到这种情况的最简单方法是使用success的{​​{1}}回调选项:

fetch

您还可以使用my.fetch({ success: function(my) { console.log('Fetch worked: ', my.toJSON()); } }); 回调。或者,您可以使用error上的donefailalways函数:

jqXHR

答案 1 :(得分:1)

您还可以使用以下代码检查数据:

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