我在将Backbone.Model或Backbone.Collection对象保存到本地存储时遇到问题.
问题是,当它保存时,只保存属性,我不希望这样.
我实际上正在使用他们的示例TODO演示中提供的骨干 – 本地存储.
问题是,当它保存时,只保存属性,我不希望这样.
我实际上正在使用他们的示例TODO演示中提供的骨干 – 本地存储.
这是他们的保存功能
- save: function() {
- localStorage.setItem(this.name,JSON.stringify(this.data));
- }
当我看到JSON.stringify(this.data)返回的内容时,我只看到模型或集合的属性获取集合.有没有办法指定我想@R_616_301@和集合所在的整个状态,而不仅仅是属性?
解决方法
重写Model.toJSON或Collection.toJSON以返回要序列化的数据.
默认的Model.toJSON只返回属性:
- toJSON : function() {
- return _.clone(this.attributes);
- }
Collection的toJSON使用Model的toJSON:
- toJSON : function() {
- return this.map(function(model){ return model.toJSON(); });
- }