vuelidate требуемая функция

Я использую плагин Vuelidate:

import { required, maxLength } from 'vuelidate/lib/validators';

У меня есть метод

methods: {
  isFinishedFill() {
    return !!this.disabledFinishedAt || !!this.finishedAtYear;
  }
}

И у меня есть плагин vuelidate. Я хочу отправить required моя функция, но я получаю ошибку.

validations: {
  finishedAtYear: {
    required: this.isFinishedFill,
  },
}

Как я могу отправить нужную функцию?

2 ответа

Решение

Вы можете создать собственный валидатор следующим образом:

  import { required, maxLength } from 'vuelidate/lib/validators';
  //custom validator
  const isFinishedFill =(value, vm) =>  !!vm.disabledFinishedAt || !!vm.finishedAtYear;
   //vm represents the Vue instance 
  export default{
      ...
     validations:{
            finishedAtYear: {
               required,
               isFinishedFill  //<---- use  your custom validator
           }  
    }

На основе примера, предоставленного документами, попробуйте переписать ваш код следующим образом

validations: {
    finishedAtYear: {
        isFinishedFill: this.isFinishedFill,
    },
}

Или используйте чистую функцию

validations: {
    finishedAtYear: {
        isFinishedFill: (value) => { /* do some checks here */ },
    },
}
Другие вопросы по тегам