2017-04-25 64 views
3

我嘗試使用MdDialog彈出一個窗口。但它只顯示一個空白的窗口。沒有內容。Angular2 MdDialog不顯示內容,只顯示窗口

dialog.component.ts:

import {Component, NgModule, ViewContainerRef} from '@angular/core' 
import {BrowserModule} from '@angular/platform-browser' 

import { MaterialModule } from '@angular/material'; 
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; 
import { MdDialog, MdDialogConfig, MdDialogRef } from '@angular/material'; 

@Component({ 
    selector: 'dialog', 
    template: ` 
     <h1 md-dialog-title>Dialog</h1> 
     <h2>Hi, I am the dialog</h2> 
     <button md-raised-button (click)="dialogRef.close()">Close dialog</button> 
    ` 
}) 

export class DialogComponent { 
    constructor(public dialogRef : MdDialogRef<any>){}; 
} 

fileuploader.component.ts

import { Component } from '@angular/core'; 
import '../../assets/css/styles.css'; 
import { FileUploader } from 'ng2-file-upload'; 
import { DialogComponent } from './dialog.component'; 
import {MdDialog, MdDialogConfig, MdDialogRef} from '@angular/material'; 
import {NgModule, ViewContainerRef} from '@angular/core' 
import {BrowserModule} from '@angular/platform-browser' 
import { MaterialModule } from '@angular/material'; 
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; 

@Component({ 
    selector: 'file-uploader', 
    templateUrl: '../templates/fileuploader.component.html', 
    styleUrls: ['../css/fileuploader.component.css'] 
}) 

/** Class representing App Component. */ 
export class FileUploaderComponent { 


    constructor(
    public dialog : MdDialog, 
) { 


     console.log("ImageUpload:uploaded:", item, status, response, headers); 
     console.log("test"); 
     let dialogRef = this.dialog.open(DialogComponent, { 
     height: '400px', 
     width: '600px', 
     }); 

     dialogRef.afterClosed().subscribe(result => { 
     dialogRef = null; 
     }); 

     console.log("done"); 
    }; 
    } 
} 

app.module.ts

import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { RouterModule, Routes } from '@angular/router'; 
import { FormsModule } from '@angular/forms'; 
import { AngularFireModule, AuthProviders, AuthMethods } from 'angularfire2'; 
import { AppComponent } from './components/app.component'; 
import { LoginComponent } from './components/login.component'; 
import { DashboardComponent } from './components/dashboard.component'; 
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; 
import { LoggedInGuard } from './common/logged-in.guard'; 
import { MaterialModule } from '@angular/material'; 
import { HeaderComponent } from './components/header.component'; 
import { FileUploaderComponent } from './components/fileuploader.component'; 
import { FileDropDirective, FileSelectDirective } from 'ng2-file-upload'; 
import { DialogComponent } from'./components/dialog.component'; 


/** 
* App Module 
* The app module handles all the imports, 
* declerations, exports and providers. Any new 
* component need to be declared here. 
*/ 

@NgModule({ 
    imports: [ 
    BrowserModule, 
    AngularFireModule.initializeApp(firebaseConfig, firebaseAuthConfig), 
    RouterModule.forRoot(appRoutes), BrowserAnimationsModule, 
    MaterialModule.forRoot() 
    ], 
    declarations: [ 
    AppComponent, LoginComponent, DashboardComponent, HeaderComponent, 
    FileUploaderComponent, FileSelectDirective, FileDropDirective, DialogComponent 
    ], 
    entryComponents: [ 
    DialogComponent 
    ], 
    exports: [], 
    providers: [LoggedInGuard], 
    bootstrap: [AppComponent] 
}) 
/** Class representing App Module. */ 
export class AppModule { } 

我認爲什麼是彈出一個窗口,在dialogcomponent中顯示消息「Dialog」「嗨,我是一個對話框」。但現在,只是一個空白的窗口。

謝謝。

回答

3

問題是關於選擇器的事情。看起來「對話」選擇器過於籠統,與材料包混淆。將其更改爲更具體的對話框。它工作正常。

+0

我知道我不應該命名它對話框。應該聽過我的直覺,謝謝發佈這個,爲我節省了幾個小時的調試時間。 –