У меня есть массив дат, которые я называю holidayList и которые я хотел бы отключить с помощью Angular Datepicker для материала.
holidayList: Date[] = [];
this.holidayList: [
new Date("1/1/2020"),
new Date("1/20/2020"),
new Date("2/17/2020"),
new Date("5/25/2020"),
new Date("7/4/2020"),
new Date("9/7/2020"),
new Date("10/12/2020"),
new Date("11/11/2020"),
new Date("11/26/2020"),
new Date("12/25/2020")
]
Чтение Angular * Проверка даты документацию, мы можем использовать [matDatepickerFilter]="myFilter"
, например, так:
HTML:
<mat-form-field class="example-full-width">
<input matInput [matDatepickerFilter]="myFilter" [matDatepicker]="picker" placeholder="Choose a date">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
TypeScript:
import {Component} from '@angular/core';
/** @title Datepicker with filter validation */
@Component({
selector: 'datepicker-filter-example',
templateUrl: 'datepicker-filter-example.html',
styleUrls: ['datepicker-filter-example.css'],
})
export class DatepickerFilterExample {
myFilter = (d: Date): boolean => {
const day = d.getDay();
// Prevent Saturday and Sunday from being selected.
return day !== 0 && day !== 6;
}
}
Тем не менее, этот пример, по сути, говорит: укажите все дни, когда день недели не равен 0 или 6 '. Я немного озадачен тем, как реализовать список дат и сказать «вот список дат, которые мы должны отключить».
Ссылка на Angular Пример материала в Stackblitz
Я знаю, что на эту тему есть несколько вопросов c, но все ответы, с которыми я сталкивался, касаются только отключения определенных дней недели, месяцев (например, отключения нечетных месяцев) - по сути, отключения типа дня; в этом случае я бы хотел отключить жестко запрограммированные даты и ничего более.