2017-10-17 2 views
0
<root> 
    <my-button @click="save()"/> 
    <my-form/> 
</root> 

my-form.vue 

methods:{ 
    save(){} 
} 

Comment appeler sauver() de ma forme via my-bouton?méthode de frères et soeurs d'appel Vue

+2

Émettre et écouter les événements, ou utiliser Vuex. https://vuejs.org/v2/guide/components.html#Non-Parent-Child-Communication – ceejayoz

Répondre

2

Vous pouvez utiliser un bus d'événements:

let EventBus = new Vue(); 

let MyButton= Vue.extend({ 
    name: "my-button", 
    props: ["what"], 
    template: ` 
    <button class="btn btn-md btn-success the-button" @click="save()">Sender: {{what}}</button> 
    `, 
    methods: { 
    save: function(){ 
     EventBus.$emit("form.save", //pass payload here); 
    } 
    } 
}); 

Vue.component("my-button", MyButton); 

***my-form.vue:**** 

created(){ 
    EventBus.$on('form.save', (payload)=>{ 
     this.save(payload) 
    }); 
}, 
methods:{ 
    save(payload) {} 
} 

échantillon de travail complet: https://jsfiddle.net/arvidkahl/gxdn6ycv/17/

+0

si les frères et sœurs ont aussi une relation parent-enfant? –

+2

Peu importe, tant que vous utilisez le même EventBus, ils écoutent tous les mêmes événements – Tomer