Angular9如何使用/导入DateAdapter、NativeDateAdapter“无法解析‘@angular/material/core/datetime’”

我正在尝试为日期选择器设置正确的(基于语言环境的)一周开始。所以我使用了这个和那个问题并实现了我自己的 DateAdapter:

import { NativeDateAdapter } from "@angular/material/core/datetime";
import { Injectable } from "@angular/core";
import { LOCALE_ID, Inject } from "@angular/core";
import { Platform } from "@angular/cdk/platform";
import { getLocaleFirstDayOfWeek } from "@angular/common";

@Injectable()
export class LocaleDateAdapter extends NativeDateAdapter {
  constructor(@Inject(LOCALE_ID) public locale: string) {
    super(locale, new Platform());
  }

  getFirstDayOfWeek() {
    return getLocaleFirstDayOfWeek(this.locale);
  }
}

我也相应地将它放入提供者中:

import { LocaleDateAdapter } from './components/shared-components/locale-date-adapter';
import { DateAdapter } from '@angular/material/core/datetime';
...
providers: [
... 
    {
     provide: DateAdapter,
     useClass: LocaleDateAdapter
    }
...

虽然 VS Code 似乎没问题,但编译器抱怨:

ERROR in ./src/app/app.module.ts
Module not found: Error: Can't resolve '@angular/material/core/datetime' in '...srcapp'
ERROR in ./src/app/components/shared-components/locale-date-adapter.ts
Module not found: Error: Can't resolve '@angular/material/core/datetime' in '...srcappcomponentsshared-components'

那么如何进行这项工作。(我也可以用更少的代码来了解本周的开始区域设置)

回答

正确的导入是@angular/material/core.

从我认为 v9 开始,材料导入都遵循相同的模式:@angular/material/xxx其中 xxx 通常代表某个模块。因此,例如core对于某些核心功能或button例如MatButtonModule.

有了这些知识,您应该能够很容易地检测到错误的导入。


以上是Angular9如何使用/导入DateAdapter、NativeDateAdapter“无法解析‘@angular/material/core/datetime’”的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>