单击图标

时间:2019-07-15 09:29:37

标签: javascript angular typescript

我正在将Angular 5与Typescript一起使用。我需要打开文件浏览器窗口,以在单击图标时添加附件。现在,我知道如何为按钮执行此操作,但是某种程度上它似乎不适用于图标,也许单击事件绑定不起作用。请帮忙吗?

<input type="file" #file (change)="upload()"/>
<span class="icon-doc" (click)="file.click()">
</span>

在我的组件中:

upload(){
    //The functionality to upload file(s)
}

1 个答案:

答案 0 :(得分:2)

我不确定代码的编写方式如何,但是您需要将该图标绑定到click方法,该方法实际上将以编程方式单击另一个处理文件附加的input元素。这是您可以做到的一种方法:

<a (click)="handleClick()" href="javascript:undefined">
  <i class="la la-upload"></i>
</a>

<input class="hidden" type="file" id="upload-file" name="upload-file" accept=".csv" ngf-max-size="2MB" (change)="addAttachment($event)">

您可能希望使用CSS隐藏输入按钮:

.hidden {
  visibility: hidden;
  width: 1px;
  height: 1px;
}

在您的component.ts上,

handleClick() {
  document.getElementById('upload-file').click();
}

addAttachment(fileInput: any) {
  const fileReaded = fileInput.target.files[0];
  //  handle the rest 
}