1

我正在尝试在 Angular 4 中使用 MdDialog。

对话框html:

<div style="width: 100%">
    <h2>Dialog</h2>
    <button md-raised-button (click)="dialogRef.close()">Close dialog</button>
</div>

对话框组件:

import { Component, OnInit } from '@angular/core';
import { MdDialogRef } from "@angular/material";

@Component({
    selector: 'your-dialog-selector',
    templateUrl: './dialog.component.html'
})
export class DialogComponent {
    constructor(public dialogRef: MdDialogRef<any>) {
    }
}

调用html:

<md-icon class="demo-dialog-open-button" (click)="open()">
                view_list
            </md-icon>

调用组件函数:

open() {
        this.dialogRef = this.dialog.open(DialogComponent);

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

app.material.module:

import { NgModule } from '@angular/core';
import {
    MdToolbarModule,
    MdIconModule,
    MdMenuModule,
    MdButtonModule,
    MdSelectModule,
    MdSnackBarModule,
    MdSnackBar,
    MdInputModule,
    MdTooltipModule,
    MdCardModule,
    MdDialogModule
} from '@angular/material';

@NgModule({
    imports: [
        MdToolbarModule,
        MdButtonModule,
        MdIconModule,
        MdMenuModule,
        MdSelectModule,
        MdSnackBarModule,
        MdInputModule,
        MdTooltipModule,
        MdCardModule,
        MdDialogModule
    ],
    exports: [
        MdToolbarModule,
        MdButtonModule,
        MdIconModule,
        MdMenuModule,
        MdSelectModule,
        MdSnackBarModule,
        MdInputModule,
        MdTooltipModule,
        MdCardModule,
        MdDialogModule
    ],
    providers: [
        MdSnackBar
    ]
})
export class AppMaterialModule {}

我遇到的问题是,对话框在屏幕左侧打开为一个垂直的空白白框。检查元素显示了这一点:

<md-dialog-container class="mat-dialog-container ng-tns-c7-4 ng-trigger ng-trigger-slideDialog" role="dialog" style="transform: none; opacity: 1;"><!--bindings={
  "ng-reflect-portal": ""
}--></md-dialog-container>

为什么它不显示我的对话框 html 的内容?

4

1 回答 1

4

你应该忘记在各自的 NgModuleDialogComponent中添加entryComponents

  entryComponents:[DialogComponent]

检查这个Plunker

于 2017-07-07T16:39:45.927 回答