2014-12-15 2 views
2

blockly를 사용하는 코드 편집기에서 작업 중이며 현재 내 페이지에 일부 WYSIWYG 편집기와 같은 Block View와 Code View간에 전환하기위한 탭이 있습니다. 이제 Blockly는 블록에서 코드로 전환하는 데 이미 많은 요소가 있으며, 99 %의 부분을 완료하여 코드에서 블록으로 이동할 수 있습니다 (블록 xml을 구성하는 과정이 필요함). 보기를 차단 코드보기에서 갈 내 호출은 다음과 같습니다Blockly domToWorkspace 노드 ID 재설정

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

문제는 blockly 상관없이 내 XML 노드에 설정된 속성을 어떤 ID, 없다 나중에 블록 XML을 읽으려고 할 때이를 무시합니다. 작업 공간을 비우고 있어도 계속 증가하는 것 같습니다. 이로 인해 내 자동 저장 기능에 문제가 발생합니다. 그 이유는 XML에서 변경 될 때마다 코드에서 코드가 바뀔 때마다 코드가 변경된다는 것을 의미하기 때문입니다. 생성 된 코드는 id 필드를 사용하여 각 노드를 식별하는 그래프 구조입니다. 그래프에서).

내 질문은, 누구든지 Blockly가 내가 전송 한 노드 ID를 무시하는 것을 방지하거나 노드 ID를 "재설정"할 수있는 방법을 알고 있습니까?

답변

2

Blockly Google 그룹과 매우 비슷한 질문을했고 Neil은 영구 데이터 저장을위한 새로운 data XML 태그를 추가했습니다. 거기에 신분증을 넣을 수 있을까요? 코드를 읽는 것에서 id 속성이 내부 용으로 사용 된 것처럼 보이므로 재사용하기가 신뢰할 수 없습니다.

+0

그게 효과가있는 것 같습니다. 새로운 요소인가 새로운 속성인가? 어디에서 문서화되어 있습니까? – zaparker

+0

새로운 요소입니다 : ''...''. 이는 메일 링리스트 (https://groups.google.com/forum/#!topic/blockly/CbSDz849fiE)에서만 문서화되었지만 Blockly XML에 대한 좋은 문서는 확실하지 않습니다. – noisecapella

+0

그건 중요한 부분입니다. 그의 설명을 근거로 나는 복잡한 객체가 거기에서 어떻게 작동 할 것인지 모르지만 내 ID 필드에서는 완벽 할 것입니다. 감사! – zaparker