我正在将Angular 5与Typescript一起使用。我需要打开文件浏览器窗口,以在单击图标时添加附件。现在,我知道如何为按钮执行此操作,但是某种程度上它似乎不适用于图标,也许单击事件绑定不起作用。请帮忙吗?
<input type="file" #file (change)="upload()"/>
<span class="icon-doc" (click)="file.click()">
</span>
在我的组件中:
upload(){
//The functionality to upload file(s)
}
答案 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
}