没有提供MdDialog错误

没有提供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 
 
    ]}