没有提供MdDialog错误
问题描述:
我想从Angular 2的材质模块中使用MdDialog。我有一个组件,我试图在下面显示的对话框中使用。没有提供MdDialog错误
import { Component, OnInit } from '@angular/core';
import { Aircraft } from '../shared/aircraft';
import { AircraftService } from '../shared/aircraft.service';
import { MdDialog, MdDialogRef } from '@angular/material';
import { NewAircraftDialogComponent } from '../new-aircraft-dialog/new-aircraft-dialog.component';
@Component({
selector: 'app-statusboard',
templateUrl: './statusboard.component.html',
styleUrls: ['./statusboard.component.css']
})
export class StatusboardComponent implements OnInit {
aircrafts: Aircraft[] = [];
constructor(private aircraftService: AircraftService,
public dialog: MdDialog) { }
ngOnInit(): void {
this.aircraftService.getAircrafts()
.then(aircrafts => this.aircrafts = aircrafts);
}
openNewAircraftDialog(): void {
let dialogRef = this.dialog.open(NewAircraftDialogComponent, {
width: '300px'
});
dialogRef.afterClosed().subscribe(result => {
console.log('The dialog was closed');
});
}
}
而对话框组件如下所示。
但我得到一个错误控制台说:“错误:未捕获的(在承诺):错误:不!提供商MdDialog”
环顾网上,它说要添加“entryComponents:[NewAircraftDialogComponent]”NgModule。我有,但那并没有解决这个问题。
答
我找到了我自己的答案。
我将MdDialog和MdDialogRef导入到我的组件中,但未导入MdDialogModule。我将MdDialogModule添加到我的app.module.ts导入,并且一切正常!
相关的问题和答案: Angular 2 No provider for Http
答
在module.ts添加此 进口{MdDialogModule}从 '@角/材料';
@NgModule({ 声明: ' ' '], 进口: ' ' ], 提供商: MdDialogModule ]}
add this in module.ts
import \t {MdDialogModule} from '@angular/material';
@NgModule({
declarations: [
'
'
'],
imports: [
'
'
],
providers: [
MdDialogModule
]}