Reputation: 2754
I currently have data attribute with
data() {
return {
stats: {
limit: 100,
score: 0
}
}
}
then I want my validation to be between 0 to the value of limit
from data attribute
I'm currently using Vuelidate for validating attributes.
import { required, between } from "vuelidate/lib/validators";
validations: {
stats: {
score: {
between: between(0, this.stats.limit)
}
}
}
But this is not currently working. I'm currently getting
Cannot read property limit of undefined
Upvotes: 1
Views: 522
Reputation: 7739
the context of vuelidate's validators is not the component instance. But, since vuelidate passes the component context trough function context, you can replace it with a custom function.
import { required, between } from "vuelidate/lib/validators";
function customBetween(value) {
return between(0, this.stats.limit)(value)
}
validations: {
stats: {
score: {
between: customBetween
}
}
}
Upvotes: 2