如何清除aurelia中的文件输入绑定?

问题描述 投票:3回答:1

Aurelia与文件输入的绑定工作得非常好,但是当我使用一个简单的函数将模型属性重置为空数组时,绑定会被清除,但浏览器文件输入会一直显示所选文件的名称。

 <input type="file" class="form-control" id="file-upload" files.bind="selectedFiles" change.delegate="generatePreview()" aria-describedby="fileUploadHelp" ref="selectedFiles">

这是我目前的html,在模型方面,我简单地将selectedFiles添加为空数组

现在,当我尝试清除输入时,

clearFiles() {
    this.selectedFiles = [];
    // this.selectedFiles = null; setting to null also produces same results
}

它确实有效,并清除模型中的数据。

但浏览器文件输入会在输入控件中显示所选文件的名称。

使用jquery mindset或简单的JS,可以很容易地添加一行来访问输入并将值设置为''

document.getElementById("file-upload").value = null;

但这不应该与绑定一起工作吗?

我错过了一些明显的东西吗

PS:我测试了最新的chrome和firefox,行为是一样的。

javascript html aurelia aurelia-binding
1个回答
1
投票

正如你所提到的,在vanilla JS中你将value设置为null。因此,只需在输入中添加value绑定:

<input type="file" value.bind='val' files.bind='selectedFiles' />

在你的班级中,将val设置为null:

clearFiles() {
    this.val = null;
}
© www.soinside.com 2019 - 2024. All rights reserved.