Có vẻ như Vue.js 2.0 không phát ra các sự kiện từ một đứa trẻ lớn đến thành phần cha mẹ của nó.
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 này giải quyết vấn đề https://jsfiddle.net/y5dvkqbd/4/ , nhưng bằng cách tạo hai sự kiện:
- Một từ trẻ lớn đến thành phần trung lưu
- Sau đó, lại phát ra từ thành phần giữa đến thành phần chính
Thêm sự kiện giữa này có vẻ lặp đi lặp lại và không cần thiết. Có cách nào để phát trực tiếp cho ông bà mà tôi không biết không?