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

时间:2019-04-10 11:08:24

标签: javascript html aurelia aurelia-binding

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

 <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思维方式或简单的JS,可以很容易地添加一行以访问输入并将值设置为''

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

但是这也不能用于绑定吗?

我缺少明显的东西吗?

PS:我在最新的chrome和firefox中进行了测试,其行为是相同的。

1 个答案:

答案 0 :(得分:1)

正如您提到的,在普通JS中,您将value设置为null。因此,只需在您的输入中添加一个value绑定:

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

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

clearFiles() {
    this.val = null;
}