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.
有了这些知识,您应该能够很容易地检测到错误的导入。
THE END
二维码