Angular 7: NullInjectorError: Нет поставщика для MatSnackBarConfig - PullRequest
0 голосов
/ 21 июня 2019

В нашем проекте мы используем 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 импортируются в отдельный файлas:

import { NgModule } from '@angular/core';
import {
  ...
  MatSnackBarModule,
  ...
} from '@angular/material';

@NgModule({
  exports: [
    ...
    MatSnackBarModule,
    ...
  ],
})
export class MyMaterialModule { }

Обратите внимание: приложение отлично работает под Google Chrome!Есть идеи?Спасибо за внимание!

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Ваш код должен быть таким

import {MatSnackBarModule} from '@angular/material';

@NgModule({
  imports: [MatSnackBarModule],
  exports: [
    ...
    MatSnackBarModule,
    ...
  ],
})
0 голосов
/ 21 июня 2019

Эта ошибка обычно возникает, когда служба, которую вы пытаетесь использовать, не была предоставлена ​​в вашем @ NgModule.

Чтобы использовать службу MatDialog, вам нужно перейти в файл модуля и добавить MatSnackBarModule в массив импорта:

import {MatSnackBarModule} from '@angular/material';

@NgModule({
  imports: [MatSnackBarModule]
})
export class MyMaterialModule {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...