Массив дат пуст при попытке доступа к нему из параметров средства выбора - PullRequest
1 голос
/ 09 мая 2020

У меня есть массив дат, которые заполняются с сервера, который определяет даты, которые должны быть отключены в datepicker

 getStaffAvailability(){
            let x = this;
            this.$http.get(this.weeklyAvailabilityUrl + "GetAvailableDaysForStaff/" + this.entity.staffId)
                .then(function (event: any) {
                    x.staffAvailableDays = event.body;
                });
        }

после запуска этого метода я ясно вижу в инструментах vue dev, которые этот массив заполняется значениями, как ожидалось ... https://i.stack.imgur.com/9cUpx.png

однако в методе disableddates параметра datepicker, когда я пытаюсь получить доступ к массиву, он пуст и не имеет значений в нем . Я не понимаю, почему это так.

 export default class StaffAllocation extends Mixins<BaseCrudMixin>(BaseCrudMixin) {
        staffAvailableDays: Date[];
        datePickerOptions: any;

        @Prop(Number) eventId!: number;

        constructor() {
            this.staffAvailableDays = [];
            this.datePickerOptions = {
                disabledDate: (currentDate: Date) => {
                    return (this.staffAvailableDays.findIndex(item => { return item.getTime() == currentDate.getTime() })) == -1;
                }
            };
}

1 Ответ

1 голос
/ 09 мая 2020

Согласно вашему снимку экрана, this.staffAvailableDays - это массив string вместо массива Date. Это означает, что item.getTime() вызовет исключение.

Что вы можете попробовать, так это проанализировать даты перед их назначением:

getStaffAvailability(){
  let x = this;
  this.$http.get(this.weeklyAvailabilityUrl + "GetAvailableDaysForStaff/" + this.entity.staffId)
  .then(function (event: any) {
    x.staffAvailableDays = event.body.map(function (d) {
      return new Date(Date.parse(d));
    });
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...