Как прослушать события вложенных компонентов в Vue

Я хочу получить событие "input" из вложенного компонента, которое я вижу запускающим из расширения Vue chrome devtools

Я могу только слушать событие "input" в VDatePicker с помощью директивы v-on. Есть ли способ прослушать событие VDatePickerDateTable "input" без расширения компонента VDatePicker?

<template>
    <v-date-picker v-model="selectedDays" multiple @input="onDayClick"/>
</template>

<script>
    export default {
        methods:{
            onDateClick(data){
                console.log(data); // ["2019-01-01", "2019-01-02", "2019-01-06"]
            }
        }
    }
</script>

1 ответ

Это то, что я в итоге сделал. Используя ссылку на VDatePicker и следуя за ней во вложенную ссылку своего дочернего элемента, VDatePickerDateTable для прослушивания своего события "input". Причина, по которой я считаю, что входные данные в VDatePicker пропускают массив строк с датами, заключается в том, что это многопользовательский инструмент выбора, который определяется атрибутом множественного числа в компоненте. Это было добавлено в Vuetify 1.2.

Теперь он передает дату, по которой щелкнул обработчик. Я хотел бы знать, если у кого-то есть лучший способ.

<template>
    <v-date-picker ref="datePicker" v-model="selectedDays" multiple/>
</template>

<script>
export default {
    mounted(){
            this.$refs.datePicker.$refs.table.$on('input', this.onDayClick);
    },
    methods: {
        onDateClick(data) {
            console.log(data); // "2019-01-01"
        }
    }
};
</script>
Другие вопросы по тегам