Tampaknya Vue.js 2.0 tidak memancarkan peristiwa dari anak cucu ke komponen induknya.
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'
})
JsFiddle ini memecahkan masalah https://jsfiddle.net/y5dvkqbd/4/ , tetapi dengan mengemisikan dua peristiwa:
- Satu dari cucu sampai komponen tengah
- Kemudian dipancarkan lagi dari komponen tengah ke grand parent
Menambahkan acara tengah ini tampaknya berulang dan tidak perlu. Apakah ada cara untuk memancarkan langsung ke kakek nenek yang tidak saya ketahui?