J'ai un problème qui a été résolu par un hack et je cherche une meilleure façon de le résoudre. Ce que je veux faire est lorsque l'utilisateur clique sur input: file et sélectionne une image qu'il devrait être affiché sur l'écran sans téléchargement (en utilisant FileReader).Meilleure façon de changer l'image src Tout en étant asynchrone [angulaire 4]?
Le problème est, je ne peux pas atteindre presque rien à l'intérieur méthode Filereaders onload (je dois atteindre this.image pour changement d'image) malheureusement je
let el = <HTMLImageElement>document.querySelector(".veik");
el.src = this.result;`
Mon code
html:
<input type="file" name="test" id="file" (change)="onChange($event)">
ts:
onChange($event){
this.readThis($event);
}
ReadThis(inputValue: any) : void {
var file:File = inputValue.target.files[0];
var myReader:FileReader = new FileReader();
myReader.onload = function(e){
let el = <HTMLImageElement>document.querySelector(".veik");
el.src = this.result;
};
myReader.readAsDataURL(file);
}
La façon de le faire dans angulaire serait de lier la source de l'image à une propriété du composant, puis définir cette valeur dans le 'onload'. –