1

我正在创建一个主干模型,其中有一个子主干模型:

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 后遇到了一个错误——video is not an instanceof Backbone.Model。为什么?

4

1 回答 1

1

我认为您将需要覆盖parseand toJSON

  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 数据,backbone 将从 json 中获取“视频”对象并覆盖您的 Backbone 模型。

于 2013-02-18T22:44:06.890 回答