Я пытаюсь клонировать https://imageresize.org/ для практики Angular 5. Однако я сталкиваюсь с проблемой, которая не позволяет мне привязать значение из файла машинописи к html.
Вотinput:
<input type="file" accept="image/*" autocomplete="off" style="display: none" id="input" draggable="true" (change)='changeInput()' multiple>
Я также использую компрессор изображений xkeshi (https://github.com/xkeshi/image-compressor) для сжатия изображения:
changeInput() {
this.img = <HTMLImageElement>document.querySelector('img,#image');
this.files = (<HTMLInputElement>document.querySelector('input[type=file],#input')).files
this.inputFlag = true;
for (var i = 0; i < this.files.length; i++) {
var imageCompressor = new ImageCompressor;
imageCompressor.compress(this.files[i],{
quality: .4
}).then((result)=>{
this.results[i] = result;
this.resultSize = result.size;
this.sizeRound = `${Math.round(100 - this.resultSize * 100 / this.fileSize)}%`;
})
}
}
results - это массив Blob для получения значения«результата» в цикле:
results: Blob[] = [];
HTML-привязка:
<tr *ngFor ="let file of files, let i = index">
<td style="height: 30px" class="text-center">{{file.name.slice(0,7)}}</td>
<td style="height: 30px" class="text-center">{{status}}</td>
<td style="height: 30px" class="text-center"></td>
<td style="height: 30px" class="text-center">{{file.size}}</td>
<td style="height: 30px" class="text-center">{{results[i].size}}</td>
<td style="height: 30px" class="text-center">{{sizeRound}}</td>
</tr>
Я получаю ошибку: Экран печати ошибки Есть ли у кого-нибудь идеикак это исправить? Спасибо. p / s: извините за мой английский, я не являюсь носителем языка