我正在遵循以下文档:https://vuejs.org/v2/guide/components.html 我创建了自定义的v-text-field组件,如下所示:
<template>
<div>
<v-text-field
:label="label"
v-bind:value="value"
v-on:input="$emit('input', $event.target.value)"></v-text-field>
</div>
</template>
<script>
export default {
name: "txtbox",
props: ['value', 'label'],
}
</script>
我几乎成功地在我的主要组件中实现了它:
<txtbox
label="Name"
v-model="eventName"
/>
我认为没有必要粘贴所有代码,但是如果是这样,我将对其进行编辑。下面是它的工作原理: 我有一个列表,当我单击列表元素时,文本字段将显示其内容,这可以正常工作。可悲的是,当我编辑文本字段的内容时,v-model值没有更新。我还可以补充一点,它可以正常使用(例如在文档中)而不是。有什么我可以做的,还是应该使用简单的输入? 谢谢
答案 0 :(得分:4)
当您想要$emit
新值时,只需要发出$event
,而不是$event.target.value
<template>
<div>
<v-text-field
:label="label"
v-bind:value="value"
v-on:input="$emit('input', $event)"></v-text-field>
</div>
</template>
v-on:input
也可以缩短为@input