2017-02-07 8 views
6

Я пытаюсь добавить пользовательский обработчик InlineButtonClickHandler к click событиечрезвычайной <router-link> компонента, так что я могу испускать обычай appSidebarInlineButtonClick события.Добавить прослушиватель событий <router-link> компонента с помощью «V-на:» директиву - VueJS

Но мой код не работает. Что я делаю не так?

<template> 
    <router-link :to="to" @click="InlineButtonClickHandler"> 
    {{ name }} 
    </router-link> 
</template> 

<script type="text/babel"> 
export default { 
    props: { 
    to: { type: Object, required: true }, 
    name: { type: String, required: true } 
    }, 
    methods: { 
    InlineButtonClickHandler(event) { 
     this.$emit('appSidebarInlineButtonClick'); 
    } 
    } 
} 
</script> 
+0

Вы можете показать консольный журнал? – samayo

ответ

13

Вы должны добавить .native modifier:

<router-link 
    :to="to" 
    @click.native="InlineButtonClickHandler" 
> 
    {{name}} 
</router-link> 

Это будет слушать родной щелкните событие корневого элемента из router-link Компонент.

+0

работаю для меня ... Спасибо –

0

хорошим решением было бы:

<a v-link='{name: "home"}' v-on:click.capture='InlineButtonClickHandler'>Home</a>

+0

Благодарим вас за ответ. Но в соответствии с документацией это решение было заменено на VueJs V2: [ссылка на источник документа ...] (https://vuejs.org/v2/guide/migration-vue-router.html#v-link-replaced) –

0
<router-link:to="to"> 
    <span @click="InlineButtonClickHandler">{{name}}</span> 
</router-link> 

Возможно, вы можете попробовать это.

 Смежные вопросы

  • Нет связанных вопросов^_^