javascript - Vuetify 自定义时间选择器组件不更新模型并给出错误
问题描述
所以我已经坚持了一段时间了。我在 Vuetify 中使用时间选择器创建了一个自定义组件。我在 Vue.js 文档中看到了您需要像这样发出输入的自定义模型组件:
<input
v-bind:value="value"
v-on:input="$emit('input', $event.target.value)"
>
但即使添加了这个,它似乎也没有更新我的模型。我收到错误 TypeError:无法读取未定义的属性“值”。我尝试了 $emit('input', $event) 似乎也没有用。这是我的组件:
时间选择器.vue
<template>
<div>
<v-dialog
ref="dialog"
v-model="modal2"
:return-value.sync="time"
persistent
full-width
width="290px"
>
<template v-slot:activator="{ on }">
<v-text-field
v-model="time"
:label="label"
y
readonly
prepend-icon="far fa-clock"
v-on="on"
></v-text-field>
</template>
<v-time-picker
v-if="modal2"
:value="time"
@input="$emit('input', $event.target.value)"
full-width
>
<v-spacer></v-spacer>
<v-btn flat color="primary" @click="modal2 = false">Cancel</v-btn>
<v-btn flat color="primary" @click="$refs.dialog.save(time)">OK</v-btn>
</v-time-picker>
</v-dialog>
</div>
</template>
<script>
export default {
name: 'TimePicker',
props: ['value', 'label'],
data() {
return {
time: this.value,
modal2: false
};
}
};
</script>
我正在使用这样的组件:
<TimePicker v-model="startTime" label="Start Time"></TimePicker>
解决方案
您可以尝试如下发出事件:
<input
v-bind:value="value"
v-on:input="onInput"
>
methods: {
onInput(value) {
this.$emit('input', value)
}
}
推荐阅读
- python - 我怎样才能找到将是某个工作日的第二天(例如,下一次是星期一)?
- python-3.x - 如何显示人口增长?
- javascript - 在 javascript 类中丢失“this”的上下文
- reactjs - React Router v5 的问题
- sql - 如何将 refcursor 的值分配给 PL/SQL 中的变量
- python - 链接python扩展模块
- javascript - 在反应组件中设置外部 HTML
- python - TemplateDoesNotExist 位于 /groups/posts/in/first-post/post/_post.html
- python - 根据列中的值从熊猫数据框中删除行
- python - 最大错误(nx.connected_component_subgraphs(),)没有属性'connected_component_subgraphs'