Możesz użyć, ViewChild
aby uzyskać dostęp do wejścia w swoim komponencie. Najpierw musisz dodać #someValue
dane wejściowe, aby można było je przeczytać w komponencie:
<input #myInput type="file" placeholder="File Name" name="filename" (change)="onChange($event)">
Następnie w swoim komponencie musisz importować ViewChild
z @angular/core
:
import { ViewChild } from '@angular/core';
Następnie użyj, ViewChild
aby uzyskać dostęp do danych wejściowych z szablonu:
@ViewChild('myInput')
myInputVariable: ElementRef;
Teraz możesz użyć myInputVariable
do zresetowania wybranego pliku, ponieważ jest to odniesienie do wejścia za pomocą #myInput
, na przykład metody create, reset()
która zostanie wywołana przy click
zdarzeniu twojego przycisku:
reset() {
console.log(this.myInputVariable.nativeElement.files);
this.myInputVariable.nativeElement.value = "";
console.log(this.myInputVariable.nativeElement.files);
}
Najpierw console.log
wydrukuje wybrany plik, po drugie console.log
wydrukuje pustą tablicę, ponieważ this.myInputVariable.nativeElement.value = "";
usuwa wybrane pliki z wejścia. Musimy użyć, this.myInputVariable.nativeElement.value = "";
aby zresetować wartość wejścia, ponieważ FileList
atrybut input jest tylko do odczytu , więc nie można po prostu usunąć elementu z tablicy. Oto pracujący Plunker .