При запуске страницы Angular 5 в браузере я получаю сообщение об ошибке ниже в консоли браузера.

Ошибка: StaticInjectorError (AppModule) [AppComponent -> MatDialog]: StaticInjectorError (Платформа: ядро) [AppComponent -> MatDialog]: NullInjectorError: Нет поставщика для MatDialog! в _NullInjector.webpackJsonp ... / .. / .. / core / esm5 / core.js._NullInjector.get

Что мне не хватает?

19
Vishwajit R. Shinde 23 Фев 2018 в 15:10

4 ответа

Лучший ответ

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

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

import {MatDialogModule} from '@angular/material/dialog';

@NgModule({
  imports: [MatDialogModule]
})
export class MyModule {}

Вы можете найти импорт вместе с дополнительной информацией о том, как использовать это диалоговое окно, здесь: https: // материал. angular.io/components/dialog/api.

35
vince 23 Фев 2018 в 13:20

Попробуйте объявить вне конструктора и инициализировать внутри конструктора

Мой код как этот Мой интерфейс ниже

export interface DoctorDetails
    {
        UserId:number,
        DoctorId:number,
        FirstName:string,
        LastName:string, 
        Speciality:string,
        EmailId:string,
        PhoneNumber1:string,
        PhoneNumber2:string,
        CountryName:string,
        StateName:string,
        city:string,
        AddressLine1:string,
        HospitalName:string,
        PrimaryMark:number
    }

Моя декларация и инициализация, как показано ниже

export class DoctorDetailsComponent implements OnInit {
  url:string="http://hospitalapi.com/api/doctor/GetDoctor/";
  doctor:DoctorDetails[];//Declare
  constructor(private route:ActivatedRoute,
    private http:HttpService
    ) { 
      const id =route.snapshot.paramMap.get("id");
      console.log(id);
      this.url = this.url+id;  
      this.doctor = new Array<DoctorDetails>();//Initialize
    
    }
-2
Rajesh Pany 6 Авг 2019 в 10:45

Выдает ошибку, если данные @Inject (MAT_DIALOG_DATA) не предоставлены: any. Попробуйте предоставить данные по умолчанию. Также имя компонента диалога должно быть в entryComponents в соответствующем модуле.

0
Rohan Shenoy 5 Ноя 2019 в 07:02

Иногда следующая ошибка также появляется, когда вы хотите нажать API, и в это время вам нужно проверить, правильно ли API, а также проверить пробелы при установке API.

Uncaught (in promise): Error: StaticInjectorError(AppModule)[LoginDialogComponent -> InjectionToken MatDialogData]:

3
amanb 16 Мар 2019 в 10:04