【问题标题】:Vuelidate: setting $model does not update componentVuelidate:设置 $model 不会更新组件
【发布时间】:2019-04-10 20:12:48
【问题描述】:

鉴于以下使用 Vuetify 和 Vuelidate 的 Vue 组件:

<template>
    <div id="app">
        <v-date-picker v-model="$v.picker.$model"></v-date-picker>
    </div>
</template>

<script>
import Vue from 'vue'
import Vuetify from 'vuetify/lib'
import { required } from 'vuelidate/lib/validators'

Vue.use(Vuetify)

new Vue({
  el: "#app",
  data() {
    return {
      picker: new Date().toISOString().substr(0, 10)
    };
  },
  validations: {
    picker: {
      required
    }
  }
});
</script>

我想以编程方式更改this.picker 的值。我尝试更改 v-model 以及 Vuelidate $model:

this.picker = new Date().toISOString().substr(0, 10)

this.$v.picker.$model = new Date().toISOString().substr(0, 10))

它们都没有导致 UI 发生变化,也没有产生错误消息。

如何以编程方式更新 DatePicker 的值?

【问题讨论】:

    标签: javascript vue.js vuejs2 vuetify.js vuelidate


    【解决方案1】:

    尝试将 v-model 分配给 picker 而不是 $v.picker.$model

    您说您尝试更改 v-model,但这应该可以。

    &lt;v-date-picker v-model="picker"&gt;&lt;/v-date-picker&gt;

    【讨论】:

    • 我的表单中有文件类型输入,该元素无法使用v-model。如果您有任何替代解决方案。请与我分享。 @乔什纽林
    • 为什么会这样? vuelidate 的文档总是使用前面的 $v 和后面的 $model 来表示数据点,但是,它似乎没有用于实际验证的目的,它只是引入了错误.. 有谁知道它们的意义何在?
    猜你喜欢
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    相关资源
    最近更新 更多