我如何对一个对象数组使用vuelidate?

问题描述 投票:0回答:1

我有一系列对象,可以在表单调查表中遍历。每个对象中有五个属性,但是只有一个属性需要验证。我将组件的验证部分设置如下:

specificGifts: {
      $each: {
        passThrough: {
          required: requiredIf(function(value) {
            return this.docs.includes('Will')
          })
        }
      }
    },

我看到了以html格式审核的文档,而不是执行以下代码:

<div
              v-for="(gift, i) in specificGifts"
              :key="i"
            >
<v-select
                label="How does this specific gift pass if the recipient does not survive?"
                v-model="gift.passThrough"
                :items="specificGiftPassThrough"
              ></v-select>
    </div>

我应该使用:

<div
              v-for="(gift, i) in $v.specificGifts.$each.$iter"
              :key="i"
            >
<v-select
                label="How does this specific gift pass if the recipient does not survive?"
                v-model="gift.passThrough.$model"
                :items="specificGiftPassThrough"
              ></v-select>
    </div>

我的vuejs组件的数据部分如下:

data(){
return{
specificGifts: []
}
}

但是,我收到以下控制台错误“无法读取未定义的属性$ model”。当我console.log $ v.specificGifts。$ each。$ iter时,我也收到控制台错误。有人知道我在做什么错吗?有没有更好的方法来使用验证?似乎vuelidate可能不符合要求,因为它要求我通过$ v属性进行硬编码循环,以便无论如何都可以使用vuelidate。

javascript vue.js vuelidate
1个回答
0
投票

我对Vuelidate也有很多麻烦。我能给您的最好的解决方案是将Vuelidate更改为VeeValidate

更改并不复杂,从长远来看,它将节省大量时间。

VeeValidate提供了许多使用验证的简便方法,包括为每个规则使用自定义消息(不再需要计算来提供错误消息),并允许您根据特定条件使用规则。

您可以查看文档here

© www.soinside.com 2019 - 2024. All rights reserved.