....會不會有問題,因爲我已將'videos'屬性設置爲 a Collection?
是的。如您所說,您需要在發送前序列化收集。
我認爲最好的辦法是有一個屬性是一個骨幹集合,分開你的videos
屬性。您更新此集合initialize
和sync
。
您將只使用videos
屬性來填充您的收藏。
我的建議是在您的Playlist
模型中重寫Backbone的save
方法來序列化您的視頻集。一旦您序列化您的集合,您就可以將模型的保存返回到Backbone保存方法。
Model.Playlist = Backbone.Model.extend({
initialize: function(options){
this.initializeVideoCollection();
this.on('sync', this.initializeVideoCollection, this);
},
initializeVideoCollection: function(){
this.videoCollection = new Collections.VideoCollection(this.get('videos'));
},
save: function(attrs, options){
attrs = attrs || this.toJSON();
attrs.videos = this.videoCollection.toJSON();
options.attrs = attrs;
return Backbone.Model.prototype.save.call(this, attrs, options);
}
});