Условный валидатор Vuelidate - PullRequest
       70

Условный валидатор Vuelidate

1 голос
/ 06 августа 2020

Я ДЕЙСТВИТЕЛЬНО не понимаю пользовательскую проверку 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, а не параметры (для генерации сообщений об ошибках из et c), и я не могу получить доступ к свойствам времени выполнения моего vue instance (например, this.bond.term_length в данном случае).

так как я могу написать простой условный пользовательский валидатор vuelidate, который использует конструктор minValue (или любой другой)?

...