Угловая статическая ошибка инжектора - PullRequest
1 голос
/ 30 мая 2019

Я хочу добавить Material Snackbar в мое приложение в качестве сервиса.

Итак, в своем уведомлении.service.ts я добавил:

import { Component, Input, Output, EventEmitter } from '@angular/core';
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';

@Injectable()
export class NotificationService {

  snackbar_notification: Subject<string> = new Subject();
  constructor() {}
  setSnackbarNotification(message: string) {
    this.snackbar_notification.next(message);
  }
}

В моем app.component.ts:

export class AppComponent implements OnInit {

  constructor(
    private notificationService: NotificationService,
    public snackBar: MatSnackBar
  ) {

    this.notificationService.snackbar_notification.subscribe(message => {
      this.snackBar.open(message);
    });

  }
}

Я запускаю снэк-бар из компонента, подобного:

this.notificationService.setSnackbarNotification('this is a notification');

Код работал нормально, прежде чем я внес вышеуказанные изменения в 3 файла.

Теперь выдает ошибку при выполнении:

Error: StaticInjectorError(Xs)[e -> e]: 
  StaticInjectorError(Platform: core)[e -> e]: 
    NullInjectorError: No provider for e!

Как я могу решить эту проблему?

1 Ответ

2 голосов
/ 30 мая 2019

Импорт модуля:

import {MatSnackBarModule} from '@angular/material/snack-bar'; 

И добавьте его в свой модуль:

@NgModule({
    imports: [
        MatSnackBarModule,
    ],
    providers: [

    ],
})

Убедитесь, что вы добавляете в родительский модуль уведомления и используемый в нем компонент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...