需求
前端编辑的 Blockly 块需要保存到数据库。下次进入时需要保留上次的编辑数据。
实现
保存数据
// code: 生成出来的代码
// xml:工作区目前编辑的 xml dom 对象
// xmlText: xml dom 对象转 text
const code = Blockly.JavaScript.workspaceToCode(yourWorkspace);
const xml = Blockly.Xml.workspaceToDom(yourWorkspace);
const xmlText = Blockly.Xml.domToText(xml);
回显数据
// 需要将保存的 xmlText 转为 xml dom 对象
const xml = Blockly.Xml.textToDom(xmlText);
// 回显数据
Blockly.Xml.domToWorkspace(xml, yourWorkspace);
清空数据
// 清空工作区的内容
yourWorkspace.clear();