Отключение будущих дней с помощью Angular mwl-calendar-month-view - PullRequest
1 голос
/ 27 января 2020

Можно ли отключить день в Mat-Calendar? Наш проект позволяет сотруднику установить Временной Ввод на фактические и прошлые дни, но он или она не может сделать это в будущие дни ...

Вот так ... Сегодня 27-е, а завтра он не может открыть 28-й день

Редактировать: Извините, я проверял код, а не мат-календарь ... это mwl-calendar-month-view

enter image description here

Ответы [ 2 ]

2 голосов
/ 27 января 2020

Добавить функцию для фильтрации дат в вашем компоненте. Эта функция возвращает true, чтобы включить дату, и false, чтобы отключить ее.

filterDates = (date: Date): boolean => {
  let today = new Date();
  return date < today;
}

и привязать ее к mat-calendar:

<mat-calendar ... [dateFilter]="filterDates"></mat-calendar>
1 голос
/ 27 января 2020

Это может быть возможно, если вы подключитесь к beforeViewRender и примените некоторые CSS правила

Шаблон:

<mwl-calendar-month-view (beforeViewRender)="applyDateSelectionPolicy($event)">
</mwl-calendar-month-view>

TS:

  dateIsValid(date: Date): boolean {
    return date.getTime() < new Date().getTime();
  }

  applyDateSelectionPolicy({ body }: { body: CalendarMonthViewDay[] }): void {
    body.forEach(day => {
      if (!this.dateIsValid(day.date)) {
        day.cssClass = 'disabled-date';
      }
    });
  }

CSS:

.disabled-date{
 opacity: .5;
 pointer-events: none;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...