在 select 验证问题上验证空对象

Vuelidate empty object on select validation issue

我想知道如何使用 vuelidate 验证空对象。我尝试在 jsfiddle 上进行演示,链接如下

Vue.use(window.vuelidate.default)
const { required, minLength } = window.validators

new Vue(
    {
        el: "#app",
        data: {
            companies: [
                {
                    id: 1,
                    name: 'facebook'
                }, 
                {
                    id: 2, 
                    name: 'apple'
                }
            ],
            text: {
                id: null,
                name: null
            }
        },
        validations: {
            text: {
                required
            }
        }
    }
)

jsfiddle

验证对象没有什么特别的,您只需要定义结构并添加您需要的任何验证规则。

请参阅 example I created and take another look at the Collections 文档。

$v.text 是有效的,因为它是一个 non-empty 对象。这意味着它没有 'falsy' 值,因此它符合要求。使其工作的一种方法:

validations: {
    text: {
        id: {required},
        name: {required},
    },
},

JSFiddle

如果不想重复items对象结构,可以写一个custom validator.

vuelidate 页面的文档中缺少有关如何使用 withParams 的信息。 所以我在它的 github 页面上搜索并找到了这个 link 。 根据 link 我想出了那个解决方案

import { withParams } from 'vuelidate'

export const checkIfNull = withParams(
  { type: 'required' },
  value => (value.id === null ? false : true)
)