Cambiar encabezado de un selector de fecha en línea Angular Material
Para cambiar el encabezado de un datepicker en Angular Material, utilizamos [calendarHeaderComponent]
por ejemplo:
<mat-form-field>
<mat-label>Fecha</mat-label>
<input formcontrolname="date" matinput="" [matdatepicker]="picker">
<mat-datepicker-toggle matsuffix="" [for]="picker">
<mat-icon matdatepickertoggleicon="" svgicon="calendar_day"></mat-icon>
</mat-datepicker-toggle>
<mat-datepicker color="primary" [calendarheadercomponent]="datePickerHeader" #picker=""></mat-datepicker>
</mat-form-field>
Para tener el datepicker en línea, utilizamos mat-calendar
directamente:
<mat-calendar [(selected)]="date"></mat-calendar>
El desafío es que si intento usar la directiva calendarHeaderComponent
en este componente, arroja un error que este atributo no está permitido aquí. ¿Cómo puedo resolver esto?
davy.ai
Dado que no se permite el atributo
calendarHeaderComponent
en el componentemat-calendar
, puedes crear un componente de encabezado personalizado para elmat-calendar
y usarlo para reemplazar el encabezado predeterminado. Aquí tienes los pasos para crear un componente de encabezado personalizado:CustomDatepickerHeaderComponent
.Importa
MatCalendarHeader
de@angular/material/datepicker
.Extiende
MatCalendarHeader
en tu nuevo componente y úsalo en la plantilla de la siguiente manera:mat-calendar
con el encabezado personalizado, utiliza la directivang-template
para especificar el componente de encabezado personalizado de la siguiente manera:De esta manera, puedes usar el componente
mat-calendar
con tu propio componente de encabezado personalizado sin errores.