2017-09-24 32 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をインポートしませんでした。私はapp.module.tsのインポートにMdDialogModuleを追加しました。

関連質問と答えは: 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 
 
    ]}

関連する問題