【问题标题】:Use Vuelidate on a v-model with array在带有数组的 v-model 上使用 Vuelidate
【发布时间】:2020-12-16 04:39:00
【问题描述】:

我在需要的选择选项上使用 vuelidate (https://vuelidate.js.org/),当 v-model 具有单个名称 $v.selectedWorkflow.$model 时它可以工作

<div class="form-group" :class="{ 'form-group--error': $v.selectedWorkflow.$error }">
          <select v-model.trim="$v.selectedWorkflow.$model">
            <option :value="undefined" selected disabled>Select a Workflow</option>
            <option v-for="workflow in workflows"
                :key="workflow.id" :value="workflow">
              {{workflow.name}}
            </option>
          </select>
          </div>

但是,在使用数组执行 v-model 时,我收到一个错误,$error is undefined 或有时 $model is undefined 在使用 $v.usersForRole[role.name].$model 时我不确定我是否使用正确的语法

<div class="form-group" :class="{ 'form-group--error': $v.usersForRole[role.name].$error }">
            <select v-model.trim="$v.usersForRole[role.name].$model">
              <option :value="undefined" selected disabled>Select a User</option>
              <option v-for="user in role.users" :key="user.id" :value="user.id">
                {{user.display_name}}
              </option>
            </select>
          </div>
          <div class="error" v-if="!$v.usersForRole[role.name].required"></div>

这是我的验证

validations: {
    title: {
      required,
      minLength: minLength(4)
    },
    slug: {
      required
    },
    selectedWorkflow: {
      required
    },
    usersForRole: {
      required
    }
  },

【问题讨论】:

    标签: vue.js nuxt.js vuelidate


    【解决方案1】:

    使用$each 满足此要求。

    参考链接:https://vuelidate.js.org/#sub-collections-validation

    validations: {
        title: {
          required,
          minLength: minLength(4)
        },
        slug: {
          required
        },
        selectedWorkflow: {
          required
        },
        usersForRole: {
          $each: {
             required
          }
        }
      },
    

    【讨论】:

    • 如何将$each 放在 vue 标签中?我提供了我的 html,你提供的参考是不同的,因为我从 API 获取数据
    猜你喜欢
    • 2018-06-04
    • 2019-08-06
    • 2018-02-20
    • 2017-11-14
    • 2020-03-12
    • 2018-11-03
    • 2020-06-07
    • 2020-09-24
    相关资源
    最近更新 更多