2014-12-15 2 views
2

Я работаю над редактором кода, используя блокировку, и на моей странице в настоящее время есть вкладки для переключения между блочным просмотром и представлением кода, вроде как некоторые редакторы WYSIWYG. Теперь у Blockly уже есть много вещей для перехода от блоков к коду, и я получил 99% от сделанных частей, чтобы я мог перейти от кода к блокам (это связано с созданием кучи блока xml). Мой призыв перейти от просмотра кода, чтобы заблокировать вид выглядит следующим образом:Блокированные идентификаторы узлов для узла DomToWorkspace

var xml = Blockly.Xml.textToDom(self.xmlGenerated()); 
Blockly.mainWorkspace.clear(); 
Blockly.Xml.domToWorkspace(Blockly.mainWorkspace, xml); 

Проблема не в том, независимо от того, что идентификатор атрибуты я установил в моих XML-узлов, блокли отменяет их, когда я пытаюсь прочитать блок XML позже. Кажется, они постоянно увеличиваются, хотя я очищаю рабочее пространство. Это вызывает проблему для моей функции автоматического сохранения, поскольку это означает, что каждый раз, когда я перехожу от кода к блокам, меняет свой xml, и поэтому мой код изменяется (сгенерированный код представляет собой структуру графа, которая также использует поля id для идентификации каждого узла на графике).

Итак, мой вопрос: кто-нибудь знает, как предотвратить блокировку от переопределения идентификатора узла, который я отправляю, или есть способ «сбросить» идентификаторы узлов?

ответ

2

Я задал очень похожий вопрос в группе Blockly Google, и Нил добавил новый тег XML data для хранения постоянных данных. Может быть, вы можете поставить свой ID там? Из чтения кода кажется, что атрибут id предназначен для внутреннего использования, поэтому может быть ненадежным его повторное использование.

+0

Звучит так, как будто это сработает. Это новый элемент или новый атрибут? Документировано ли это где угодно? – zaparker

+0

Это новый элемент: '' ... ''. Он зарегистрирован только в списке рассылки (https://groups.google.com/forum/#!topic/blockly/CbSDz849fiE), но я не уверен, что есть хорошая документация для любого из Blockly XML. – noisecapella

+0

Это справедливая точка. Основываясь на его описании, я не знаю, как там будут работать сложные объекты, но для моего поля id это было бы прекрасно. Благодаря! – zaparker

Смежные вопросы