【问题标题】:Angular-Calendar: No provider for DateAdapterAngular-Calendar:没有 DateAdapter 的提供者
【发布时间】:2019-06-12 12:52:58
【问题描述】:

在我新创建的 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] }

非常感谢任何关于为什么会发生这种情况或我将如何解决它的帮助,谢谢!

【问题讨论】:

    标签: angular angular-calendar


    【解决方案1】:

    试试这个。为我工作。日历需要某种形式的 dateAdapter,您可以使用如下所示的时刻。

    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】:

      我猜你正在混合 DateAdapter 符号。

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

      import { DateAdapter } from "angular-calendar";
      

      在您的角度材料模块中,使用:

      import { DateAdapter } from '@angular/material/core';
      

      其次,如果您想将 angular-calendar 与 date-fns 一起使用,您当前的代码应该没问题。如果你想使用带矩的角度日历,你应该参考这个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 {}
      

      【讨论】:

        猜你喜欢
        • 2019-01-12
        • 2015-08-15
        • 1970-01-01
        • 2019-05-15
        • 2018-11-17
        • 2018-08-04
        • 2018-06-21
        • 2020-10-10
        • 1970-01-01
        相关资源
        最近更新 更多