【发布时间】:2021-07-11 20:23:29
【问题描述】:
文档:
https://vuejs.org/v2/guide/components-custom-events.html#Customizing-Component-v-model
不清楚(至少对我而言)如何将多个事件附加到同一个组件:
在:
https://codesandbox.io/s/dawn-dust-2tno0?file=/src/components/EditCategory.vue
这是发出绑定到同一个道具的多个事件(编辑/删除类别)的正确方法吗:
<div
class="modal-body"
v-bind:taskItem="taskItem"
@click="$emit('edit-category', $event.target.taskItem)"
>
<slot name="name"> Edit Name </slot>
</div>
<div
class="modal-body"
v-bind:taskItem="taskItem"
@click="$emit('delete-category', $event.target.taskItem)"
>
<slot name="delete"> Delete Category </slot>
</div>
?
模型定义为:
model: {
prop: "taskItem",
event: "edit-category",
},
props: {
taskItem: {
required: true,
type: Object,
default() {
return {};
},
},
},
文档中的示例:
Vue.component('base-checkbox', {
model: {
prop: 'checked',
event: 'change'
},
props: {
checked: Boolean
},
template: `
<input
type="checkbox"
v-bind:checked="checked"
v-on:change="$emit('change', $event.target.checked)"
>
`
})
没有明确说明如何为每个道具绑定多个事件;例如类似:
model: {
prop: 'checked',
event: 'event-a',
event: 'event-b',
},
?
【问题讨论】:
标签: javascript vue.js vuejs2 vue-component dom-events