web-dev-qa-db-fra.com

Comment appeler une instance de vue à l'extérieur en Javascript

Comment appeler la vue de test en javascript? Voici mon code, je veux appeler test lorsque je fais quelque chose en fonction javascript.

function clickit() {
   this.test.fetchTestData();    
}

var test = new Vue({
    el: '#viewport',
    data: {
        test_data: []
    },

    mounted: function () {
        this.fetchTestData();
    },

    methods: {
        fetchTestData: function () {
            $.get(test.json, function (data) {
                this.test_data = data;
               alert(this.test_data.isActive);
            });
        }
    }
});
6
Winston

Vous essayez d'utiliser this dans clickit(), où this fait référence à window. Il vous suffit donc de supprimer this pour appeler la méthode à l'intérieur du modèle de vue:

function clickit() {
   test.fetchTestData();    
}
9
craig_h

Je crains que vous n’ayez pas utilisé Google. Après avoir cherché le titre de votre message sur Google, vous trouverez des réponses claires: Appelez une méthode de composant Vue JS de l’extérieur du composant

https://laracasts.com/discuss/channels/vue/use-objects-outside-vue

Référence rapide: E.g.

Avoir un compenent inscrit sur mon instance parent:

var vm = new Vue({
    el: '#app',
    components: { 'my-component': myComponent }
});

Rendez le composant dans template/html avec une référence:

<my-component ref="foo"></my-component>

Maintenant, ailleurs, je peux accéder au composant à l'extérieur

<script>
vm.$refs.foo.doSomething(); //assuming my component has a doSomething() method
</script>
0
M U