Я использую внешний API для возврата всех банковских выходных. Мне нужно использовать этот ответ, чтобы отключить все эти даты в Angular Выбор даты материала (а также в выходные дни).
Поскольку я выполняю HTTP-вызов, кажется, что он не работает.
Вот мой последний код, но в настоящее время он просто отключает все даты:
onDisableDates = (date: any) => {
const day = date.day();
this.validationService.getBankHolidayDates().subscribe(response => {
const bankHolidays = response['england-and-wales'].events.map(i => new Date(i.date));
bankHolidays.forEach(bankHoliday => {
let isBankHoliday = false;
const holiday = bankHoliday.toLocaleDateString();
const input = moment(new Date(date)).format('DD/MM/YYYY');
if (holiday === input) {
isBankHoliday = true;
}
return day !== 0 && day !== 6 && !isBankHoliday;
});
});
}
HTML
<mat-form-field>
<mat-label>DD/MM/YYYY</mat-label>
<input id="startDate" matInput [matDatepickerFilter]="onDisableDates" [matDatepicker]="picker" [min]="minDate" formControlName="startDate">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker touchUi #picker></mat-datepicker>
</mat-form-field>
Также обратите внимание, что я использую MAT_DATE_LOCALE и MomentDateAdapter.
Любое руководство было бы замечательно, так как я потратил несколько дней, пытаясь заставить его работать!
Stackblitz здесь: https://stackblitz.com/edit/angular-wvqzpb-u9d52c