angular - 如何在 Angular Material 中使用输入类型文件

标签 angular angular-material material-design

如何在 Angular Material 中使用输入类型文件

您好,我正在使用 Angular 形 Material 进行设计。当我访问 Angular Material 网站时,没有输入类型文件元素。任何人都知道这件事。

最佳答案

如果您只想要一个显示良好的文件输入按钮,这里有一个解决方法。

HTML

<button type="button" mat-raised-button (click)="fileInput.click()">Choose File</button>
<input hidden (change)="onFileSelected()" #fileInput type="file" id="file">

组件

onFileSelected() {
  const inputNode: any = document.querySelector('#file');

  if (typeof (FileReader) !== 'undefined') {
    const reader = new FileReader();

    reader.onload = (e: any) => {
      this.srcResult = e.target.result;
    };

    reader.readAsArrayBuffer(inputNode.files[0]);
  }
}

受此 Angular Material Github Issue 评论的启发 https://github.com/angular/material2/issues/3262#issuecomment-309000588

关于angular - 如何在 Angular Material 中使用输入类型文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52622061/

相关文章:

html - MDL : Fixed header icon misplaced?

angular - Karma 单元测试错误 : Unexpected value imported by the module. 请添加@NgModule 注释

angular - 在@angular/cdk 中找不到拖放

css - Angular - Material : Progressbar custom color?

android - 如何突出显示 Recycler View 的选定项目?

android - 添加按钮,例如 Gmail 应用程序的 "New Mail"按钮

json - 你如何使用 proxy.conf.json 将数据返回到你的 Angular 应用程序?

angular - Observable 中的错误处理程序未映射到 JSON

javascript - 用 ECMAScript 重写 AngularJS 2.0?

css - Angular Material 下拉样式 : Trim Left and Right Side in CSS