Angular 4 TypeScript,单击一个按钮弹出文件打开对话框

bre*_*one 9 typescript angular-material angular

想要在.component.html中单击"关注"按钮时打开标准文件打开对话框:

<button md-fab md-tooltip="Input">
    <md-icon class="md-24">input</md-icon>
</button>
Run Code Online (Sandbox Code Playgroud)

似乎打开对话框的常用方法是使用这样的输入标记:

<input type=”file”>
Run Code Online (Sandbox Code Playgroud)

但它在屏幕上显示了额外的东西.考虑在.component.ts中弹出一个(点击):

<button md-fab md-tooltip="Input" (click)="onClick()">
    <md-icon class="md-24">input</md-icon>
</button
Run Code Online (Sandbox Code Playgroud)

但是找不到在.ts中弹出文件打开对话框的方法,请帮忙.

@ angular/cli:1.0.1节点:7.7.4 os:win32 x64 @ angular/xxxx:4.0.3

Joh*_*ohn 7

看来你正在使用棱角分明的材料.你试过这个例子吗?https://material.angular.io/components/component/dialog.当前代码直接来自链接中的示例.在HTML中:

<button md-button (click)="openDialog()">Launch dialog</button>
Run Code Online (Sandbox Code Playgroud)

在.ts文件中:

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


@Component({
  selector: 'dialog-result-example',
  templateUrl: './dialog-result-example.html',
})
export class DialogResultExample {
  selectedOption: string;

  constructor(public dialog: MdDialog) {}

  openDialog() {
    let dialogRef = this.dialog.open(DialogResultExampleDialog);
    dialogRef.afterClosed().subscribe(result => {
      this.selectedOption = result;
    });
  }
}


@Component({
  selector: 'dialog-result-example-dialog',
  templateUrl: './dialog-result-example-dialog.html',
})
export class DialogResultExampleDialog {
  constructor(public dialogRef: MdDialogRef<DialogResultExampleDialog>) {}
}
Run Code Online (Sandbox Code Playgroud)