簡體   English   中英

Angular-Calendar:DateAdapter 沒有提供者

[英]Angular-Calendar: No provider for DateAdapter

在我新創建的 Angular 應用程序中,我嘗試使用 mattlewis92 的 angular-calendar 來創建他的日歷。 我已經復制了他的 github 上列出的所有步驟和代碼: https Error: StaticInjectorError(AppModule)[CalendarDayViewComponent -> Date Adapter]: NullInjectorError: No provider for DateAdapter!但我一直收到一個錯誤消息: 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] }

任何關於為什么會發生這種情況或我將如何解決它的幫助將不勝感激,謝謝!

嘗試這個。 為我工作。 日歷需要某種形式的 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 })
]

我猜你正在混合 DateAdapter 符號。

在您的日歷模塊中,使用:

import { DateAdapter } from "angular-calendar";

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

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

其次,如果您想將 angular-calendar 與 date-fns 一起使用,您當前的代碼應該沒問題。 如果你想使用 angular-calendar 和 moment,你應該參考這個官方演示

日歷模塊看起來像:

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 {}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM