2017-04-16 1 views
1

Tun Sie so gut wie this, aber leider geht etwas schief. Ich möchte this Code initialisieren. mein Code
Dies ist:Wie initialisiert man das Widget in der Komponente VueJS?

<template> 
    <div id="vk_share_button"></div> 
</template> 

<script> 
    export default { 
     methods:{ 
     start(){ 
      document.getElementById('vk_share_button').innerHTML = 
      VK.Share.button('example.com', {type: 'link'}); 
     } 
     }, 
     created(){ 
      VK.ready(this.start()); 
     } 
    } 
</script> 

Auch habe ich versucht, zu verwenden: VK.Share.ready/VK.Share.button.ready, aber ich den gleichen Fehler:

Cannot set property 'innerHTML' of null

Ich dachte, dass der externe Code nicht geladen ist, aber ich bin mir nicht sicher. Wo mache ich einen Fehler?

Antwort

3

versuchen mounted Block statt created Block verwendet wird, als berittener Block , nachdem die Instanz gerade montiert aufgerufen wurde, in dem el durch die neu geschaffene vm ersetzt $ el `, wie folgt:.

<script> 
    export default { 
     methods:{ 
     start(){ 
      document.getElementById('vk_share_button').innerHTML = 
      VK.Share.button('example.com', {type: 'link'}); 
     } 
     }, 
     mounted(){ 
      VK.ready(this.start()); 
     } 
    } 
</script> 
+0

Ja es funktioniert! Vielen Dank :) – artem0071

+0

Ich habe ein weiteres Problem auf der Konsole: VK.ready ist keine Funktion. Aber es funktioniert. Wie kann ich es verbessern? – artem0071

+0

Sieht so aus als gäbe es keine solche Methode 'fertig'. Sie können einfach mounten() {this.start(); }, um eine Schaltfläche einzufügen. – wostex

Verwandte Themen