В угловом компоненте у меня есть такой файл и его изображение:
public file : File;
Как показать изображение в шаблоне HTML, примерно так:
<img [src] = "file">
да это @artemArkhipov



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Используйте метод FileReader's экземпляра readAsDataURL и передайте ему File. У него есть свойство onload, которому вы можете назначить функцию обработчика. Это будет вызываться с помощью event после чтения входного файла. Свойство target.result события будет иметь закодированный URI, который затем можно будет использовать в качестве источника изображения.
Вот как это переводится в код
В вашем классе компонентов:
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
url;
onChange(event) {
var reader = new FileReader();
reader.onload = (event: any) => {
this.url = event.target.result;
};
reader.onerror = (event: any) => {
console.info("File could not be read: " + event.target.error.code);
};
reader.readAsDataURL(event.target.files[0]);
}
}
И в шаблоне:
<input type = "file" (change) = "onChange($event)">
<img *ngIf = "url" [src] = "url">
Это наиболее лаконичный и понятный ответ. Благодарю вас <3.
Ваш файл - изображение?