重大日期选择器过滤

时间:2018-08-31 08:57:35

标签: angular datepicker angular-material

我正在尝试使过滤工作。我已经修改了sample,但无法弄清楚为什么它不起作用。我想禁用所有日子,除了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 :(得分:2)

使用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;
  }

答案 1 :(得分:1)

将返回值保存到变量中,然后它将起作用。

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

StackBlitz Example