[英]validate.js validating array elements
我有一个包含两个数组属性的Java脚本对象:
我正在使用validate.js库。
例如:
var customer = {
name: 'Ted',
address: 'some address',
friends: ['Michelle','Elon'],
purchases: [{ qty:1, goods: 'eggs'}, { qty:2, goods: 'apples'}]
}
我要验证以下内容:
我该如何使用validate.js?
您可以创建一个自定义验证器 ,我们将其称为array
:
import validate from 'validate.js/validate'
import isEmpty from 'lodash-es/isEmpty'
validate.validators.array = (arrayItems, itemConstraints) => {
const arrayItemErrors = arrayItems.reduce((errors, item, index) => {
const error = validate(item, itemConstraints)
if (error) errors[index] = { error: error }
return errors
}, {})
return isEmpty(arrayItemErrors) ? null : { errors: arrayItemErrors }
}
然后像这样使用它:
const customerConstraints = {
purchases: {
array: {
qty: {
numericality: {
onlyInteger: true,
greaterThan: 0,
lessThanOrEqualTo: 5
}
}
}
}
}
const customerErrors = validate(customer, customerConstraints)
然后在对customer.purchases
数组进行迭代时,在渲染块中,您可以通过检查customerErrors.purchases.errors[index].error.qty
来查看是否有任何购买商品有错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.