首页 > 解决方案 > 有条件的 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 验证器?

标签: javascriptvue.jsvalidationvuelidate

解决方案


推荐阅读