【发布时间】:2023-03-03 10:04:02
【问题描述】:
不太清楚为什么这不起作用,因为我阅读的所有示例都以相同的方式进行。
Parent.vue
<tree-select class="ml-5 tree-select"
:nodes="all"
:value="data"
@tree-item:clicked="updateParent($event)"></tree-select>
TreeSelect.vue
<template>
<p class="tree-select__item">
<span v-if="data" @click="$emit('tree-item:clicked', 0)">
updateParent: function(event) {
console.log(event);
},
我的updateParent 方法只是控制台记录事件。 Chrome 的 Vue 插件看到了该事件,但是我没有得到控制台日志。
编辑
将事件从 tree-item.clicked 更改为 tree-item:clicked。
编辑 2
Parent.vue
<tree-select class="ml-5 tree-select"
:nodes="all"
:value="data"
@tree-item-clicked="updateParent"></tree-select>
TreeSelect.vue
<template>
<p class="tree-select__item">
<span v-if="data" @click="$emit('tree-item-clicked', 0)">
【问题讨论】:
-
哪个示例显示您在事件名称中使用连字符和点?
-
@MatJ 认为连字符或点不会有什么不同,我只是喜欢这个命名。
-
@MatJ 刚把
tree-item.clicked改成test还是不行。 -
在 Vue 中,dot 是修饰符,hypen 是大写替换。因此,如果您的事件名称是 TreeItemClicked,您应该绑定到 html 中的
tree-item-clicked,因为 html 对属性名称不区分大小写。事件名称中不能既没有点也没有连字符。 -
好的,按照建议进行了上述更改,仍然没有运气! ://
标签: vue.js