2

我正在使用这样的模型:

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

只需获取 id 并忽略其余部分。

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

4

2 回答 2

4

正如@CD 指出的那样,它fetch是异步的,所以你有 2 个选项可以像这样进行回调:

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

或者

foo.fetch();

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

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

于 2013-02-10T11:45:48.267 回答
3

fetch执行异步 HTTP (Ajax) 请求,因此您应该传递fetch一个成功回调:

foo.fetch({
   success: function(){
       console.log(foo.toJSON());  
   }
});
于 2013-02-10T10:22:16.257 回答