首页 > 解决方案 > 在验证器之间使用 Vuelidate 的动态范围

问题描述

我目前有数据属性

data() {
  return {
    stats: {
      limit: 100,
      score: 0
    }
  }
}

然后我希望我的验证介于 0 到limit我目前使用Vuelidate验证属性的数据属性的值之间。

import { required, between } from "vuelidate/lib/validators";

validations: {
  stats: {
    score: {
      between: between(0, this.stats.limit)
    }
  }
}

但这目前不起作用。我目前正在 Cannot read property limit of undefined

标签: javascriptvue.jsvuelidate

解决方案


vuelidate 的验证器的上下文不是组件实例。但是,由于 vuelidate 通过函数上下文传递组件上下文,因此您可以将其替换为自定义函数。

import { required, between } from "vuelidate/lib/validators";

function customBetween(value) {
  return between(0, this.stats.limit)(value)
}

validations: {
  stats: {
    score: {
      between: customBetween
    }
  }
}

推荐阅读