Я создаю приложение angular с указателем даты angular, и мне нужно создать собственный matDatepickerFilter.
У каждого пользователя есть данные за определенный c день. Мне нужно выделить день, когда существуют данные. Это фактический фильтр:
availableDate = ['2020-06-18','2020-06-17','2020-06-16'];
calendarFilter = (d: moment.Moment): boolean => {
return this.availableDate.includes(d.format('YYYY-MM-DD'));
}
Однако этот фильтр применяется для каждого пользователей.
Чтобы иметь фильтр c, указанный пользователем, я попытался передать данные пользователя в фильтр следующим образом:
в файле машинописного текста:
user.availableDate= ['2019-01-11','2020-04-09','2020-06-13'];
calendarFilter = (d: moment.Moment, userAvailableDate): boolean => {
return userAvailableDate.includes(d.format('YYYY-MM-DD'));
}
в шаблоне :
<mat-form-field *ngFor="let user of users">
<mat-label>Choose a date</mat-label>
<input matInput [matDatepickerFilter]="calendarFilter(?trivial?, user.availableDate)" [matDatepicker]="myDatePicker">
<mat-datepicker-toggle matSuffix [for]="myDatePicker"></mat-datepicker-toggle>
<mat-datepicker #myDatePicker></mat-datepicker>
</mat-form-field>
В заключение, я не могу вызвать CalendarFilter с пользовательскими параметрами. Я вынужден использовать CalendarFilter без каких-либо параметров, опуская d: moment.Moment
, чтобы заставить его работать. Но тогда я не могу передать параметр данных пользователя c.
Как я могу реализовать настраиваемые параметры в фильтре, предназначенном для каждого пользователя?