Фильтрация даты выбора материала - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь заставить фильтрацию работать. Я изменил образец и не могу понять, почему это не работает. Я хочу отключить все дни, кроме тех, что в массиве testDates. «Найден действительный день» правильно вышел из системы, но дни не могут быть выбраны.

  myFilter = (d: Date): boolean => {
    const testDates: Date[] = [
      new Date('2018-08-30T00:00:00+02:00'),
      new Date('2018-08-28T00:00:00+02:00'),
      new Date('2018-08-21T00:00:00+02:00'),
      new Date('2018-08-23T00:00:00+02:00')
    ]
    testDates.forEach(item => {
      if (item.toDateString() == d.toDateString()) {
        console.debug("found valid day:" + d);
        return true;
      }
    });
    console.debug("invalid day:" + d);
    return false;
  }

Вот это в стеке: https://stackblitz.com/edit/angular-6fgvsx?embed=1&file=app/datepicker-filter-example.ts

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

используйте myFilter в качестве следующего кода:

myFilter = (d: Date): boolean => {
    const testDates: Date[] = [
      new Date('2018-08-30T00:00:00+02:00'),
      new Date('2018-08-28T00:00:00+02:00'),
      new Date('2018-08-21T00:00:00+02:00'),
      new Date('2018-08-23T00:00:00+02:00')
    ]

    return testDates.findIndex(testDate => d.toDateString() == testDate.toDateString()) >= 0;
  }
0 голосов
/ 31 августа 2018

Сохраните возвращаемое значение в переменную, тогда оно будет работать.

let x = false;
testDates.forEach(item => {
    if (item.toDateString() == d.toDateString()) {
        x = true;
    }
})
return x;

Пример StackBlitz

...