vue.js - Vuetify timepicker 将值返回给模型

标签 vue.js vuetify.js

我在我的项目中使用 Vuetify timepicker,但是在选择时间后它似乎没有更新我的模型,我怎样才能让它做到这一点?

这是我使用时间选择器的组件:

时间选择.vue

<template>
    <v-layout row wrap>
        <v-flex>
            <v-menu
                    ref="menu"
                    v-model="menu2"
                    :close-on-content-click="false"
                    :nudge-right="40"
                    :return-value.sync="time"
                    lazy
                    transition="scale-transition"
                    offset-y
                    full-width
                    max-width="290px"
                    min-width="290px">
                <v-text-field
                        slot="activator"
                        v-model="time"
                        :label="this.label"
                        :name="this.name"
                        prepend-icon="access_time"
                        readonly></v-text-field>
                <v-time-picker
                        v-if="menu2"
                        v-model="time"
                        full-width
                        @click:minute="$refs.menu.save(time)"
                ></v-time-picker>
            </v-menu>
        </v-flex>
    </v-layout>
</template>
<script>
    export default {
        props: [ 'label', 'name', 'value' ],
        data () {
            return {
                time: this.value,
                menu2: false,
                modal2: false
            }
        }
    }
</script>

这就是我将时间选择器添加到页面的方式,正如您所看到的,我正在使用 v-model 因此值会更新。

<time-select v-model="hours.open_time"
             name="businessHoursTimeFrom[]"
             label="Open Time"></time-select>

最佳答案

不要忘记,与自定义组件一起使用的 v-model="someVar" 只是以下功能的快捷方式:

:value="someVar" @input="someVar = $event"

因此,这个:

<time-select v-model="hours.open_time" />

底层是:

<time-select :value="hours.open_time" @input="hours.open_time = $event" />

这意味着您的自定义组件应该触发 input 事件本身。

像这样:

<v-time-picker
  v-if="menu2"
  :value="time"
  @input="$emit('input', $event)"
  full-width
  @click:minute="$refs.menu.save(time)" />

有用链接:Vue.js → Using v-model on components

关于vue.js - Vuetify timepicker 将值返回给模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54575541/

相关文章:

vue.js - 是否可以使用 Vuetify/VueJS 设置默认图像而不是轮播的第一个图像?

css - 仅对 Vuetify 应用中的某些屏幕宽度应用 CSS 类

javascript - VueJS 自定义 Prop 验证功能

javascript - Bootstrap-vue 不加载 CSS

css - 在 : optimize bootstrap-vue in nuxtjs - using Purecss 中删除大量 css 时出错

vue.js - Vue JS 将内部值传递给 CSS 属性

javascript - vue找不到vuetify v-img元素的动态源

javascript - 模板中的 VueJS 绑定(bind)类不起作用

javascript - 在 v-select 中自定义项目文本

vuejs2 - 该字段不是必需的,但如果用户输入一个值,它必须满足一些规则(vuetify 规则)