我很困惑,可以使用一些帮助。
我在一个渲染函数中,我有以下三个调试行:
console.debug(this.model);
foo = this.model.toJSON();
console.debug(foo);
第一行的输出是一个模型实例,其中包含从服务器获取的数据,并且 attributes 属性填充了我所期望的。
但是,第二个 console.debug 调用包含一个空对象。
是什么赋予了?这第二位调试输出不应该包含相同的属性但 JSON 化了吗?
以下是完整的代码:
function get_race() {
var RaceModel = Backbone.Model.extend({
urlRoot: api_root + 'race/1/?format=json',
});
var RaceView = Backbone.View.extend({
template: _.template('<h1>a template</h1><h2>desc: <%= year %></h2>'),
initialize: function() {
this.model = new RaceModel();
this.model.fetch();
this.render();
},
render: function() {
console.debug(this.model);
foo = this.model.toJSON();
console.debug(foo);
this.$el.html(this.template(this.model));
return this;
}
});
var race_view = new RaceView({ el: $("#backbone_test") });