Angular Materials中没有提供InjectionToken错误的提供程序

时间:2020-01-18 01:27:19

标签: angular angular-material

我正在使用Angular Materials进行Angular项目。使用Angular Materials正确设置了项目,并且可以毫无问题地进行编译,并且我能够使用多个Angular Materials组件。

但是当我尝试在AppModule中进行以下注入时,会出错。

@Inject(MAT_EXPANSION_PANEL_DEFAULT_OPTIONS) private options: any

错误消息:

StaticInjectorError(Platform: core)[AppComponent -> InjectionToken MAT_EXPANSION_PANEL_DEFAULT_OPTIONS]: 
    NullInjectorError: No provider for InjectionToken 

即使在MatExpansionModule导入数组中包含了AppModule,我仍然遇到此错误。

1 个答案:

答案 0 :(得分:2)

默认情况下MAT_EXPANSION_PANEL_DEFAULT_OPTIONS令牌不存在,您必须提供它。因此,如果要为扩展面板设置默认选项,则可以将其添加到模块中的提供程序列表中:

providers: [{
  provide: MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,
  useValue: {
    collapsedHeight: '100px',
    expandedHeight: '100px',
    hideToggle: true
  }
}]

https://stackblitz.com/edit/angular-material-inject?embed=1&file=main.ts