尝试使用带有 moment.js 的 rangePicker 选项实现 Angular Material v10 datepicker
但是当我将 moment 与 rangePicker 结合使用时,它会给我这个错误。Error: date.getFullYear is not a function
当我尝试选择第二个日期时发生此错误 matEndDate
修改后的 Google Stackblitz 示例显示错误:
https://stackblitz.com/edit/angular-imb7gg?file=src/app/datepicker-moment-example.ts
最佳答案
范围日期选择器使用错误的范围策略 DateAdapter
.
为了修复它,您应该提供 MAT_DATE_RANGE_SELECTION_STRATEGY
上的 token 同级您在哪里提供自定义 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]},
....
它确保 DefaultMatCalendarRangeStrategy
类将得到 MomentDateAdapter 作为 DateAdapter
实现而不是 NativeDateAdapter
Forked Stackblitz
关于javascript - Angular Material 10 范围 datepicker 和 moment.js 错误 : date. getFullYear 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63614121/