A MatDatePicker with a filter defined as followed:
<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>
export class DatepickerFilterExample {
someDateToBlock: number = 3;
myFilter = (d: Date): boolean => {
const day = d.getDay();
// THIS FUNCTION CANNOT ACCESS THE VARIABLE 'someDateToBlock'
return day !== 0 && day !== 6;
}
}
I would like to access the variable someDateToBlock (or any other) in the filter function. Is there a workaround to make this possbile?
I had the same issue, seems like material date picker doesn't have access to "this" of the component for filter function. For me changing:
[matDatepickerFilter]="myFilterFunction"
to
[matDatepickerFilter]="myFilterFunction.bind(this)"
did the trick.
This is working, here is plunkr link: https://plnkr.co/edit/oRGfxLSrn6GdfRhYO1rr?p=preview
export class DatepickerOverviewExample {
someDateToBlock: number = 3;
myFilter = (d: Date): boolean => {
const day = d.getDay();
// THIS FUNCTION CANNOT ACCESS THE VARIABLE 'someDateToBlock'
return this.someDateToBlock;
}
}
I checked with alert(this.someDateToBlock) also
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With