Backbone Model中未填充提取的JSON

时间:2013-02-10 10:14:13

标签: javascript jquery json backbone.js underscore.js

我正在使用这样的模型:

var SidebarCategory = Backbone.Model.extend({
    urlRoot: 'sidebar',
    defaults : {
        title  : '',
        items: ''
    }
});

通过GET获取此JSON:

{"id":"foo","title":"TITLE","items":"bar baz"}

但是模型本身不会接收传入的数据。

var foo = new SidebarCategory({id: 'foo'});
foo.fetch();

console.log(foo.toJSON());

只是取了身份而忽略了其余部分。

我错过了什么吗? 可能是什么问题?

2 个答案:

答案 0 :(得分:4)

正如@CD指出的那样,fetch是异步的,所以你有两个回调选项,如下所示:

foo.fetch({
success : function(data){
   console.log(JSON.stringify(data));
}
});

OR

foo.fetch();

foo.on('reset',function(data){
  console.log(JSON.stringify(data));
},this);

您可以使用上述任何一种来处理异步调用。

答案 1 :(得分:3)

fetch执行异步HTTP(Ajax)请求,因此您应该通过fetch成功回调:

foo.fetch({
   success: function(){
       console.log(foo.toJSON());  
   }
});