Vue.jsで子componentで、x-templateを使用したhtmlのinputにfocusができなくて困っています。
componentを使用する前は、htmlに、ref="focusModal" を記載し、javascriptでthis.$refs.focusModal.focus(); を実行するとfocusできていたのですが、
componentでは実行してくれなくて困っています。
デバック実行すると、this.$refsには focusModal は見れるのですが。
どなたかご存知であれば教えて下さい。
html
1<div id="app"> 2 <button type="button" v-on:click="testAction()">TestAction</button> 3 4 <modal-component ref="child1"></modal-component> 5</div> 6 7<script type="text/x-template" id="modal-component-id"> 8 <div> 9 <input type="text" ref="focusModal" /> 10 modal component 11 </div> 12</script>
javascirpt
1const modalComponent = { 2 template: "#modal-component-id", 3 4 data() { 5 6 }, 7 8 methods: { 9 initialModal(id) { 10 // 実際はBootstrap5でmodalを開いています。(Bootstrap5のためjqueryは不要) 11 12 // componentでfocusできない 13 this.$refs.focusModal.focus(); 14 }, 15 } 16}; 17 18const app = Vue.createApp({ 19 data() { 20 return { 21 id: 0 22 } 23 }, 24 25 components: { 26 "modal-component": modalComponent 27 }, 28 29 methods: { 30 testAction() { 31 this.id = 1; 32 this.$refs.child1.initialModal(this.id); 33 } 34 } 35}); 36 37app.mount("#app");
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。