这个错误通常发生在Angular应用中,当尝试使用MatCalendar组件时缺少提供者时会出现。解决这个问题的方法是确保在应用的根模块或需要使用MatCalendar的模块中正确导入和配置MatCalendar模块。
首先,确保您已经安装了Angular Material和Angular CDK库。您可以使用以下命令来安装它们:
npm install @angular/material @angular/cdk
接下来,在您的模块文件中导入MatCalendarModule和MatDatepickerModule,并将它们添加到imports数组中。例如,在app.module.ts文件中:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { MatCalendarModule } from '@angular/material/datepicker';
import { MatDatepickerModule } from '@angular/material/datepicker';
@NgModule({
imports: [
BrowserModule,
MatCalendarModule,
MatDatepickerModule
],
declarations: [/* ... */],
bootstrap: [/* ... */]
})
export class AppModule { }
确保在需要使用MatCalendar的组件中导入MatCalendar和MatDatepicker,并将它们添加到providers数组中。例如,在一个组件文件中:
import { Component } from '@angular/core';
import { MatCalendar } from '@angular/material/datepicker';
import { MatDatepicker } from '@angular/material/datepicker';
@Component({
selector: 'app-my-component',
template: `
`,
providers: [MatCalendar, MatDatepicker]
})
export class MyComponent { }
这样就会解决“Angular 8:NullInjectorError:没有MatCalendar的提供者”错误。如果问题仍然存在,您可以尝试重新安装Angular Material和Angular CDK库,或者检查是否有其他导入或配置错误。