2017-09-24 144 views
0

我想從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。我有,但那並沒有解決這個問題。

回答

3

我找到了我自己的答案。

我將MdDialog和MdDialogRef導入到我的組件中,但未導入MdDialogModule。我將MdDialogModule添加到我的app.module.ts導入,並且一切正常!

相關的問題和答案: Angular 2 No provider for Http

0

在module.ts添加此 進口{MdDialogModule}從 '@角/材料';

@NgModule({ 聲明: ' ' '], 進口: ' ' ], 提供商: MdDialogModule ]}

add this in module.ts 
 
import \t {MdDialogModule} from '@angular/material'; 
 

 
@NgModule({ 
 
declarations: [ 
 
' 
 
' 
 
'], 
 
    imports: [ 
 
' 
 
' 
 
], 
 
providers: [ 
 
     MdDialogModule 
 
    ]}

相關問題