在我们的项目中,我们使用Angular 7
和Angular Material
。在Google Chrome
下一切正常,但在Internet Explorer 11
下,当使用--aot
标志运行应用程序时,我们收到以下错误:
ERROR Error: StaticInjectorError(AppModule)[MatSnackBarContainer -> MatSnackBarConfig]:
StaticInjectorError(Platform: core)[MatSnackBarContainer -> MatSnackBarConfig]:
NullInjectorError: No provider for MatSnackBarConfig!
Material
模块作为一个单独的文件导入为:
import { NgModule } from '@angular/core';
import {
...
MatSnackBarModule,
...
} from '@angular/material';
@NgModule({
exports: [
...
MatSnackBarModule,
...
],
})
export class MyMaterialModule { }
请注意:该应用在Google Chrome
下正常运行!
有任何想法吗?感谢您对此进行调查!
答案 0 :(得分:0)
@NgModule中未提供您要使用的服务时,通常会发生此错误。
要使用MatDialog
服务,您需要转到模块文件并将MatSnackBarModule
添加到导入数组:
import {MatSnackBarModule} from '@angular/material';
@NgModule({
imports: [MatSnackBarModule]
})
export class MyMaterialModule {}
答案 1 :(得分:0)
您的代码应该是这样
import {MatSnackBarModule} from '@angular/material';
@NgModule({
imports: [MatSnackBarModule],
exports: [
...
MatSnackBarModule,
...
],
})