Angular Material 10范围日期选择器和moment.js错误:date.getFullYear不是函数



尝试使用moment.js的rangePicker选项实现Angular Material v10日期选择器但当我把矩和rangePicker结合使用时,它会给我这个错误。

Error: date.getFullYear is not a function

当我尝试选择第二个日期matEndDate时会发生此错误

修改后的Google Stacklitz示例显示错误:

https://stackblitz.com/edit/angular-imb7gg?file=src/app/datepicker-moment-example.ts

范围日期选择器使用了DateAdapter错误的范围策略。

为了修复它,您应该在上提供MAT_DATE_RANGE_SELECTION_STRATEGY令牌,该令牌与您提供自定义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

叉式堆垛机

最新更新