我正在使用 blockly 开发代码编辑器,我的页面目前有用于在块视图和代码视图之间切换的选项卡,有点像一些所见即所得的编辑器。现在,Blockly 已经有很多从块到代码的东西,而且我已经完成了 99% 的部分,以便我可以从代码到块(它涉及构建一堆块 xml)。我从代码视图转到块视图的调用如下所示:
var xml = Blockly.Xml.textToDom(self.xmlGenerated());
Blockly.mainWorkspace.clear();
Blockly.Xml.domToWorkspace(Blockly.mainWorkspace, xml);
问题是,无论我在我的 xml 节点中设置什么 id 属性,当我稍后尝试读取块 xml 时,都会覆盖它们。即使我正在清理工作区,它们似乎也在不断增加。这会导致我的自动保存功能出现问题,因为这意味着每次我从代码转到块时,我的 xml 都会发生变化,因此我的代码也会发生变化(生成的代码是一个图形结构,它也使用 id 字段来标识每个节点图中)。
所以,我的问题是,有谁知道如何防止 Blockly 覆盖我发送的节点 ID,或者有没有办法“重置”节点 ID?