У меня такой UI. Если пользователь проверит All dates
, он установит логическую переменную is_all_dates
на true
. Это означает, что пользователю не важен диапазон дат, он хочет все данные без фильтрации по диапазону дат.
С другой стороны, если пользователь не проверяет All dates
, мне нужно проверить 3 вещи.
- Он / она вводит дату начала (обязательно)
- Он / она ввел на сегодняшний день (обязательно)
- С даты ‹По дате (настраиваемый валидатор)
Для достижения этого требования я использую схему динамической проверки.
Мне нужно только проверить, равно ли All dates
false. в противном случае мне вообще не нужны проверки.
validations() {
if (!this.is_all_dates) {
return {
from: {
required
},
to: {
required,
date_greather_than
}
};
}
},
Я объявляю свою date_greather_than
валидацию вот так.
<script>
const date_greather_than = (value, vm) => {
let from = new Date(vm.from);
let to = new Date(value);
return from < to;
};
export defaults:{
validations(){},
data(){return{}}
}
</script>
Но проблема в том, что у меня ошибка
TypeError: невозможно прочитать свойство date_greather_than из undefined
Мой собственный валидатор не распознается внутри функции validations ()
Я могу использовать ключевое слово this
вот так. Это синтаксическая ошибка.
to: {
required,
this.date_greather_than
}
App.vue
в этом примере codeandbox.io/s/w2n99onq78 - person Boussadjra Brahim   schedule 11.11.2018is_all_dates
. Если этоis_all_dates == false
, то только мне нужно, чтобы это произошло. Проблема возникает, когда я использую оператор if. - person Pathum Kalhan   schedule 11.11.2018