2017-04-24 44 views
0

我正在尝试编写一个按钮组件。我的问题是:如果我使用vm.$emit发送一个单击事件,我不能注入$event等参数到像本地HTML元素的处理程序是这样如何在VueJS 2.0中编写按钮组件

<button v-on:click="handler($event, 'other-parameter')" /> 

,因为处理程序将只接收传入vm.$emit的说法。一种解决方案是传递一个函数作为道具,但我希望组件像本地HTML元素一样工作。我可以这样做吗?如何?

回答

0

为什么你不能? https://vuejs.org/v2/api/#Instance-Methods-Events

methods: { 
    handler($e, param) { 
     $this.$emit('buttonClicked', $e, param); 
    } 
} 

,并在听者

<component @buttonClicked="handleClick"> 
+0

是的,我们能做到这一点。但它意味着组件的用户需要使用指定的处理程序签名。我想要做的是制作一个无签名处理程序,用户可以决定是否注入事件。 – holmescn