반응형
VueJS 구성 요소에서 getElementById를 사용하는 모듈을 가져오는 중
Blockly를 (npm에서 노드 블록 경유로) VueJS 컴포넌트로 Import하려고 하는데 Blockly의 javascript 부분에 getElementById() 콜이 포함되어 있어 document.getElementById()는 VueJ에서 사용할 수 없습니다.
이 문제를 어떻게 해결할지 알고 있나요?
(편집) 코드 예시:
<template>
<div class="hello">
<div id="blocklyDiv" style="height: 480px; width: 600px;">
</div>
<xml id="toolbox" ref=toolbox style="display: none">
<block type="controls_if"></block>
<block type="text"></block> <block type="text_print"></block>
</xml>
</div>
</template>
<script>
import Blockly from "node-blockly"
export default { name: 'hello' }
var workspace = Blockly.inject('blocklyDiv', {toolbox: document.getElementById('toolbox')});
</script>
나는 v2라고 가정한다.
<template>
<div class="hello">
<div id="blocklyDiv" style="height: 480px; width: 600px;">
</div>
<xml id="toolbox" ref=toolbox style="display: none">
<block type="controls_if"></block>
<block type="text"></block> <block type="text_print"></block>
</xml>
</div>
</template>
<script>
import Blockly from "node-blockly"
export default {
name: 'hello',
data(){
return {
workspace: null
}
},
mounted(){
this.workspace = Blockly.inject('blocklyDiv', {toolbox: document.getElementById('toolbox')});
}
}
</script>
VueJS 버전2 를 사용하고 있는 경우는, 다음의 방법으로 요소에의 참조에 액세스 할 수 있습니다.this.$refs.myElement
템플릿에서 요소에 태그를 지정한 후.
예:
<div ref="blocklyDiv" style="height: 480px; width: 600px;">
mounted () {
this.workspace = Blockly.inject(this.$refs.blocklyDiv);
}
그리고 나서, 여러분의 도구 상자에도 똑같이 하세요.
난 이거면 돼
<script>
export default {
mounted() {
console.log('blockly');
var workspace = Blockly.inject('blocklyDiv', {
toolbox: document.getElementById('toolbox')
});
var blocklyArea = document.getElementById('blocklyArea');
var blocklyDiv = document.getElementById('blocklyDiv');
var workspace = Blockly.inject(blocklyDiv, {
toolbox: document.getElementById('toolbox')
});
....
},
언급URL : https://stackoverflow.com/questions/42236989/importing-module-that-uses-getelementbyid-in-vuejs-component
반응형
'source' 카테고리의 다른 글
Vuex v-model을 개체 상태 필드로 (0) | 2022.08.21 |
---|---|
vuejs 어플리케이션 내에서 외부 cdn에서 로드된 bing 맵을 사용하려면 어떻게 해야 합니까? (0) | 2022.08.20 |
Linux에서 GDB를 시작할 때 명령줄 인수를 전달하려면 어떻게 해야 합니까? (0) | 2022.08.20 |
사람들이 C 포인터에 대해 어려워하는 점은 무엇인가? (0) | 2022.08.20 |
모키토로 마지막 수업을 조롱하는 방법 (0) | 2022.08.20 |