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中进行了测试,其行为是相同的。
答案 0 :(得分:1)
正如您提到的,在普通JS中,您将value
设置为null。因此,只需在您的输入中添加一个value
绑定:
<input type="file" value.bind='val' files.bind='selectedFiles' />
在您的班级中,将val
设置为null:
clearFiles() {
this.val = null;
}