在我新创建的Angular应用程序中,我尝试使用mattlewis92的angular-calendar来创建他的日历。我已经复制了他的github:https://mattlewis92.github.io/angular-calendar/#/kitchen-sink上列出的所有步骤和代码,但我一直收到一个错误,显示为Error: StaticInjectorError(AppModule)[CalendarDayViewComponent -> Date Adapter]: NullInjectorError: No provider for DateAdapter!
在我的app.module.ts中,我有这个,并且已经将它们全部导入:
imports: [
CalendarModule.forRoot({
provide: DateAdapter,
useFactory: adapterFactory
})
]我能看到的唯一的问题是我也使用Moment,所以我在我的提供者中有这个:
{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] }
如果有任何帮助,我将非常感谢为什么会发生这种情况,或者我将如何着手修复它,谢谢!
发布于 2019-12-04 21:56:34
尝尝这个。对我很管用。Calendar需要某种形式的dateAdapter,您可以使用moment,如下所示。
import { CalendarModule, DateAdapter } from 'angular-calendar';
import { adapterFactory } from 'angular-calendar/date-adapters/moment';
import * as moment from 'moment';
export function momentAdapterFactory() {
return adapterFactory(moment);
};
imports: [
CalendarModule.forRoot({ provide: DateAdapter, useFactory: momentAdapterFactory })
]发布于 2020-10-12 18:56:11
我猜你把DateAdapter符号混在一起了。
在您的日历模块中,使用:
import { DateAdapter } from "angular-calendar";在angular材质模块中,使用:
import { DateAdapter } from '@angular/material/core';其次,如果你想使用带date-fns的angular-calendar,你当前的代码应该没问题。如果你想使用带有moment的角度日历,你应该参考这个official demo。
日历模块将如下所示:
export function momentAdapterFactory() {
return adapterFactory(moment);
}
@NgModule({
imports: [
CommonModule,
CalendarModule.forRoot(
{
provide: DateAdapter,
useFactory: momentAdapterFactory,
},
{
dateFormatter: {
provide: CalendarDateFormatter,
useClass: CalendarMomentDateFormatter,
},
}
)
],
providers: [
{
provide: MOMENT,
useValue: moment,
},
],
})
export class MyCalendarModule {}https://stackoverflow.com/questions/56562722
复制相似问题