我正在尝试使用角2的材料模块中的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');
});
}
}对话框组件如下所示:
import { Component, OnInit } from '@angular/core';
import { Aircraft } from '../shared/aircraft';
import { AircraftService } from '../shared/aircraft.service';
import { MdDialogRef } from '@angular/material';
@Component({
selector: 'app-new-aircraft-dialog',
templateUrl: './new-aircraft-dialog.component.html',
styleUrls: ['./new-aircraft-dialog.component.css']
})
export class NewAircraftDialogComponent implements OnInit {
newAircraft: Aircraft;
constructor(private aircraftService: AircraftService,
public dialogRef: MdDialogRef<NewAircraftDialogComponent>) { }
ngOnInit() {
}
onSubmitClick(): void {
this.dialogRef.close();
}
onCloseClick(): void {
this.dialogRef.close();
}
}但是我在控制台上发现了一个错误:
错误:秘密(在承诺中):错误:没有MdDialog的提供者!
环顾在线,它说要将"entryComponents: [NewAircraftDialogComponent]"添加到NgModule中。是的,但这并没有解决问题。
发布于 2017-09-24 01:31:37
我找到了答案。
我将MdDialog和MdDialogRef导入到组件中,但没有导入MdDialogModule。我将MdDialogModule添加到app.module.ts导入中,一切都很好!
https://stackoverflow.com/questions/46385540
复制相似问题