Angular Material 10 range datepicker e moment.js Errore: date.getFullYear non è una funzione
Cercando di implementare Angular Material v10 datepicker con l'opzione rangePicker con moment.js Ma quando uso moment in combinazione con rangePicker mi dà questo errore.
Error: date.getFullYear is not a function
Questo errore si verifica quando provo a selezionare la seconda datamatEndDate
Esempio di Google Stackblitz modificato che mostra l'errore:
https://stackblitz.com/edit/angular-imb7gg?file=src/app/datepicker-moment-example.ts
Risposte
Il selettore di date dell'intervallo utilizza la strategia dell'intervallo con DateAdapter.
Per risolverlo dovresti fornire MAT_DATE_RANGE_SELECTION_STRATEGYil token allo stesso livello in cui hai fornito personalizzato DateAdapter:
import {
MAT_DATE_RANGE_SELECTION_STRATEGY,
DefaultMatCalendarRangeStrategy
} from '@angular/material/datepicker';
...
providers: [
{ provide: MAT_DATE_RANGE_SELECTION_STRATEGY, useClass: DefaultMatCalendarRangeStrategy},
{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]},
....
Si assicura che DefaultMatCalendarRangeStrategyla classe ottenga MomentDateAdapter come DateAdapterimplementazione invece diNativeDateAdapter
Stackblitz biforcuto