2016-11-30 5 views
9

コンポーネントのテンプレート内にあるキャンバス要素を取得しようとしていますが、vuejs1ではすばらしいドキュメントが見つかりましたが、要素を取得する唯一の方法は「ref」です。私はオブジェクトを取得していますが、変数にアクセスしようとすると定義されません。コンポーネントからの参照にVuejsがアクセスできない

マイHTML

<div id="app> 
    <template id="image-capture"> 
    <div class="row" > 
     <canvas ref="icanvas" ></canvas> 
    </div> 
    </template> 
</div> 

私のjs

const ic = { 
    template: '#image-capture' , 

    created() { 
    console.log(this.$refs); //this returns object 
    console.log(this.$refs.icanvas); // but this is undefined 
    } 


} 

const routes = [ 
    { path: '/ic', component: ic}, 
] 

const router = new VueRouter({ 
    routes 
}) 

new Vue({ 
    router, 
    }).$mount('#app') 

私はicanvas要素を取得する必要があります。

here is console log

+1

に$、参考文献にアクセスして使用することができるはずです: 'この$ el.querySelectorを( '#elementID') ' – Derek

答えて

18

テンプレートが処理される前createdが発射されます。
あなたはここで詳細を見つけることができます:https://vuejs.org/v2/guide/instance.html#Lifecycle-Diagram

あなたはこのキャンバスにIDを付けmountedイベント

mounted: function() { 
    console.log(this.$refs.icanvas); 
}, 
+5

そうです。残念ながら、あなたの 'ref'が' v-for'要素である場合、それはまだ問題です。 DOMは、 'mounted'hookが起動されたときにこの' ref'にアクセスすることは実際上できません。これに関する提案はありますか?ありがとう! – BrownBe

関連する問題