Es scheint, dass Vue.js 2.0 keine Ereignisse von einem Enkelkind an seine Großelternkomponente ausgibt.
Vue.component('parent', {
template: '<div>I am the parent - {{ action }} <child @eventtriggered="performAction"></child></div>',
data(){
return {
action: 'No action'
}
},
methods: {
performAction() { this.action = 'actionDone' }
}
})
Vue.component('child', {
template: '<div>I am the child <grand-child></grand-child></div>'
})
Vue.component('grand-child', {
template: '<div>I am the grand-child <button @click="doEvent">Do Event</button></div>',
methods: {
doEvent() { this.$emit('eventtriggered') }
}
})
new Vue({
el: '#app'
})
Diese JsFiddle löst das Problem https://jsfiddle.net/y5dvkqbd/4/ , indem jedoch zwei Ereignisse ausgelöst werden:
- Eine vom Enkelkind bis zur mittleren Komponente
- Dann wieder von der mittleren Komponente zum Großelternteil emittieren
Das Hinzufügen dieses mittleren Ereignisses scheint sich zu wiederholen und ist nicht erforderlich. Gibt es eine Möglichkeit, direkt an Großeltern zu senden, die mir nicht bekannt sind?