javascript - 有条件的 Vuelidate 验证器
问题描述
我真的不了解 vuelidate 自定义验证。这不是我第一次遇到这个问题,我每次都放弃并以不同的方式将其破解。但我想从现在开始做。
我希望有一个条件验证器来检查(在这种情况下)minValue(0) 或 minValue(0.01),具体取决于页面上的其他内容。
如果不以这种方式使用内置的“构造函数类型”验证器,它们似乎不起作用:minValue: minValue(x)
即使经过几天的尝试,我也无法弄清楚这应该如何工作。
// this works no problem, but is not conditional
dividend_interest: {
minValue: minValue(0)
}
// tried this, doesn't work
dividend_interest: {
minValue: this.bond.term_length === 0 ? minValue(0) : minValue(0.01),
}
// same with this
dividend_interest: {
minValue: function(val) {
return this.bond.term_length === 0 ? minValue(0) : minValue(0.01)
},
}
// also no success with this one
dividend_interest: {
minValue: minValue(this.bond.term_length === 0 ? 0 : 0.01),
}
做这件事怎么这么难?
官方文档https://vuelidate.js.org/#sub-optional-validator建议使用返回 true 或 false 的外部 const。虽然这确实有效,但对我没有帮助,因为它只返回真或假,而不是参数(从等生成错误消息),而且我无法访问我的 vue 实例的运行时属性(比如 this.在这种情况下为bond.term_length)。
那么如何编写一个使用 minValue(或任何其他)构造函数的简单条件自定义 vuelidate 验证器?
解决方案
推荐阅读
- django - 如何在 Django 中为通用/抽象模型创建管理 mixin
- node.js - React Native 中的 CoAP 服务器
- java - 选择列表不显示值和文本
- bash - 如何在 atd 中声明变量?
- python - werkzeug.filestorage.stream 和 werkzeug.filestorage.read() 有什么区别?
- vue.js - 如何渲染递归表 vuejs + vuetify?
- javascript - 防止原始数组值在作为函数参数 javascript 传递时发生变化
- gatsby - 如何防止 gatsby 从 WordPress 下载远程文件?
- javascript - 在 Crafty.js 中以实体为中心?
- node.js - .catch((err) => { 在第一个括号处出错