Я использую компонент2 в моем компоненте1. Я хочу испустить родительскую функцию из component2, но только component1 вызывается в parent.
В данный момент я слушаю в component2 и слушаю в component1. Затем снова отправьте в component1 и прослушайте в parent.
Мой текущий код:
// Emit the toggle-filter in component2
Vue.component('component2', {
template: `<div @click="$emit('toggle-filter')"></div>`
});
// Capture it in component1, the emit again
Vue.component('component1', {
template: `<div>
<component2 @toggle-filter="toggleFilter"></component2>
</div>`,
methods: {
toggleFilter () {
this.$emit('toggle-filter');
},
}
});
// At last, capture it in parent
new Vue({
el: '#filters',
template: `<div id="filters">
<component1 @toggle-filter="toggleFilter"></component1>
</div>`,
methods: {
toggleFilter () {
console.log('filter toggled');
}
}
});
То, чего я хочу достичь, это что-то вроде ниже.
// Emit toggle-filter in component2
Vue.component('component2', {
template: `<div @click="$emit('toggle-filter')"></div>`
});
Vue.component('component1', {
template: `<div>
<component2></component2>
</div>`
});
// Then capture it in parent
new Vue({
el: '#filters',
template: `<div id="filters">
<component1 @toggle-filter="toggleFilter"></component1>
</div>`,
methods: {
toggleFilter () {
console.log('filter toggled');
}
}
});