Vous pouvez utiliser ViewChild
pour accéder à l'entrée dans votre composant. Tout d'abord, vous devez ajouter #someValue
à votre entrée pour que vous puissiez le lire dans le composant :
<input #myInput type="file" placeholder="File Name" name="filename" (change)="onChange($event)">
Ensuite, dans votre composant, vous devez importer ViewChild
de @angular/core
:
import { ViewChild } from '@angular/core';
Ensuite, vous utilisez ViewChild
pour accéder à l'entrée du modèle :
@ViewChild('myInput')
myInputVariable: ElementRef;
Vous pouvez maintenant utiliser myInputVariable
pour réinitialiser le fichier sélectionné parce que c'est une référence à l'entrée avec #myInput
par exemple, créer une méthode reset()
qui sera appelé sur click
de votre bouton :
reset() {
console.log(this.myInputVariable.nativeElement.files);
this.myInputVariable.nativeElement.value = "";
console.log(this.myInputVariable.nativeElement.files);
}
Premier console.log
imprimera le fichier que vous avez sélectionné, le second console.log
imprimera un tableau vide car this.myInputVariable.nativeElement.value = "";
supprime le(s) fichier(s) sélectionné(s) de l'entrée. Nous devons utiliser this.myInputVariable.nativeElement.value = "";
pour réinitialiser la valeur de l'entrée parce que l'entrée FileList
L'attribut est en lecture seule Il est donc impossible de supprimer un élément du tableau. Voici le travail Plunker .
0 votes
Quand vous dites "réinitialiser", que voulez-vous dire exactement ? Pouvez-vous créer un plnkr.co et postez le problème que vous rencontrez