2

我正在使用 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?

4

1 回答 1

2

我在 Blockly Google 小组中问了一个非常相似的问题,Neil 添加了一个新的dataXML 标记来存储持久数据。也许你可以把你的身份证放在那里?从阅读代码来看,该属性似乎id是供内部使用的,因此重用它可能不可靠。

于 2015-02-25T16:52:49.927 回答