Как очистить привязку ввода файла в aurelia? - PullRequest
3 голосов
/ 10 апреля 2019

Привязка 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 и поведение идентично.

1 Ответ

1 голос
/ 10 апреля 2019

Как вы упомянули, в vanilla JS вы бы установили value на ноль. Итак, просто добавьте привязку value к вашему вводу:

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

И в вашем классе установите val на ноль:

clearFiles() {
    this.val = null;
}
...