我一直在修补Backbone.js一段时间了。我一直在使用localStorage来存储我的大部分应用数据。我想知道是否可以将我的集合导出为纯文本并将其重新导入。即我想创建一种备份类型的功能,当导出数据时,HTML文本框会显示我的集合的“纯文本”版本,当我需要导回数据时,我只需将其粘贴到空文本框中它重新创建了这个系列。
这是否可行,有关如何实现这一目标的任何提示?我正在考虑将其导出为JSON格式并将其导回。那可行吗?
P.S。我知道这里没有代码,但任何想法都会受到欢迎。
答案 0 :(得分:4)
您可以使用toJSON
序列化集合。 (实际上Backbone.js mentions this是collection.toJSON()
)的主要用途。使用JSON.stringify
将JSON对象转换为字符串。
var json = myCollection.toJSON();
var serializedString = JSON.stringify(json);
要恢复集合,请执行以下步骤:
JSON.parse
将原始字符串转换为JSON对象collection.reset
将JSON对象转换为集合// setup test collection
var collection = new Backbone.Collection();
collection.add(new Backbone.Model({ hello: "world" }));
// serialize it to a string
var json = collection.toJSON();
var serialized = JSON.stringify(json);
console.log(serialized);
// get it back
var json2 = JSON.parse(serialized);
var collection2 = new Backbone.Collection();
var restored = collection2.reset(json2);
// check that it worked
console.log(restored.at(0).get("hello"));