首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular-Calendar:没有DateAdapter提供程序

Angular-Calendar:没有DateAdapter提供程序
EN

Stack Overflow用户
提问于 2019-06-12 20:52:59
回答 2查看 2.3K关注 0票数 3

在我新创建的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中,我有这个,并且已经将它们全部导入:

代码语言:javascript
复制
imports: [
    CalendarModule.forRoot({
        provide: DateAdapter,
        useFactory: adapterFactory
    })
]

我能看到的唯一的问题是我也使用Moment,所以我在我的提供者中有这个:

{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] }

如果有任何帮助,我将非常感谢为什么会发生这种情况,或者我将如何着手修复它,谢谢!

EN

回答 2

Stack Overflow用户

发布于 2019-12-04 21:56:34

尝尝这个。对我很管用。Calendar需要某种形式的dateAdapter,您可以使用moment,如下所示。

代码语言:javascript
复制
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 })
]
票数 2
EN

Stack Overflow用户

发布于 2020-10-12 18:56:11

我猜你把DateAdapter符号混在一起了。

在您的日历模块中,使用:

代码语言:javascript
复制
import { DateAdapter } from "angular-calendar";

在angular材质模块中,使用:

代码语言:javascript
复制
import { DateAdapter } from '@angular/material/core';

其次,如果你想使用带date-fns的angular-calendar,你当前的代码应该没问题。如果你想使用带有moment的角度日历,你应该参考这个official demo

日历模块将如下所示:

代码语言:javascript
复制
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 {}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56562722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档