Динамический диапазон с использованием валидатора Vuelidate между

#javascript #vue.js #vuelidate

Вопрос:

В настоящее время у меня есть атрибут данных с

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

затем я хочу, чтобы моя проверка находилась в диапазоне от 0 до значения limit атрибута from data
В настоящее время я использую Vuelidate для проверки атрибутов.

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

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

Но в настоящее время это не работает. В настоящее время я получаю
Cannot read property limit of undefined

Ответ №1:

контекст валидаторов vuelidate не является экземпляром компонента. Но, поскольку vuelidate передает контекст компонента через контекст функции, вы можете заменить его пользовательской функцией.

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

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

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