javascript - Vuetify 自定义时间选择器组件未更新模型并给出错误

标签 javascript vue.js vuejs2 vue-component vuetify.js

所以我已经坚持这个问题有一段时间了。我在 Vuetify 中使用时间选择器创建了一个自定义组件。我在 Vue.js 文档中看到自定义模型组件,您需要像这样发出输入:

    <input
      v-bind:value="value"
      v-on:input="$emit('input', $event.target.value)"
    >

但即使添加了这个,它似乎也没有更新我的模型。我收到错误 TypeError: 无法读取未定义的属性“值”。我尝试了 $emit('input', $event) ,它似乎也不起作用。这是我的组件:

TimePicker.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)
  }
}

关于javascript - Vuetify 自定义时间选择器组件未更新模型并给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56066099/

相关文章:

javascript - Js Prototype 简单类型和对象

javascript - 我该如何将 mp3 文件打包到 mp4 容器中?

javascript - 在 React Hook 表单中验证以确保至少选中一个复选框?

vue.js - 使用 Vuetify (1.0.5) 在附加图标上添加工具提示

javascript - 单击删除选项时如何删除单个值?

google-chrome-extension - 如何在 chrome 扩展的生产模式下启用 Vue devtools?

typescript - 使用 Typescript 但不使用 Webpack/ts-loader 的 Vue 类型检查

javascript - VueJS 如何定位当前组件并在其中创建Element?

vue.js - 如何重新加载 vue 组件?

javascript - 在其他计算属性中使用 Vuex getter