1

子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のインスタンスではありません。なんで?

4

1 に答える 1

1

parseとをオーバーライドする必要があると思います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データを解析しない場合、バックボーンはjsonから「video」オブジェクトを取得し、Backboneモデルを上書きします。

于 2013-02-18T22:44:06.890 に答える