使用matDatepickerFilter过滤多个视图的日期

时间:2018-11-15 19:32:41

标签: angular angular-material

我的应用上有一个有角度的材质选择器,为此我正在使用matDatepickerFilter:

<input matInput [matDatepicker]="myDatePicker" [matDatepickerFilter]="dateFilter.bind(this)">

在dateFilter函数上,我正在根据某些条件检查日期是否可用:

dateFilter(d: Date) {
  if (dateAvailable(d)) {
    return true;
  } else {
    return false
  }
}

问题在于,每个日历视图(月,年和多年)的每一天都需要调用相同的过滤器。例如:从月视图更改为多年视图,将触发过滤器8766次(每天,每年每月,每年一次)。

这需要花费大量时间和性能,因为它每天检查每年或多年视图,而仅检查年/月就足够了。但是由于matDatepickerFilter仅支持date参数,因此我无法区分当前正在过滤哪个视图(也无法找到当前视图)。

如何有效地根据视图过滤日期?

我的意思是:

  • 在月视图上:按每天进行过滤
  • 在年视图中:仅按年/月过滤
  • 在多年视图中:仅按年份过滤

谢谢!

0 个答案:

没有答案