调用Backbone.Model.Save将child-Backbone.Model转换为对象?

时间:2013-02-18 22:21:24

标签: javascript backbone.js

我正在创建一个Backbone模型,里面有一个子Backbone模型:

console.log("inside add item, video:", video instanceof Backbone.Model);

var playlistItem = new PlaylistItem({
    video: video,
    title: video.get('title')
});
之后,我保存了它:

playlistItem.save({}, {
    success: function() {
        console.log("Successfully saved.");
        playlistItem.get('video').get('title');
    }
});

在这个例子中,我遇到一个错误 - 在调用save之后,视频不是Backbone.Model的实例。为什么呢?

1 个答案:

答案 0 :(得分:1)

我认为您需要覆盖parsetoJSON

  toJSON: function() {
     var json = Backbone.Model.prototype.toJSON.call(this);

     // replace backbone model with json.
     json.video = this.get('video').toJSON();

     return json;
  },

  parse: function(data) {
     // take json of video and set into model.
     this.get('video').set(data.video);
     delete data.video;

     return data;
  },

如果你不像这样解析json数据,骨干网将从json获取'video'对象并覆盖你的Backbone模型。