Вот проблемная часть шаблона:
<ul id="list">
<template iterate='file in convertedfiles.files'>
<li>{{file.filename}}
<template if='file.isImage'>
<img src="{{file.src}}" alt="{{file.filename}}"><br/>
Source: {{file.src}}
</template>
</li>
</template>
</ul>
convertfiles — это список AndroidFile:
class AndroidFile {
File _file;
String filename;
String src;
bool isImage;
AndroidFile(this._file) : isImage = false {
filename = htmlEscape(_file.name);
// If the file is an image, read and display its thumbnail.
if (_file.type.startsWith('image')) {
FileReader reader = new FileReader();
reader.on.load.add((e) {
src = reader.result.toString().trim();
// prints the correct URL (data:image/png;base64,...)
print(src);
isImage = true;
watcher.dispatch();
});
reader.readAsDataUrl(_file);
}
}
}
Шаблон отображается. Он показывает имя файла, он показывает источник, но тег изображения выглядит так:
<img alt="screenshot-1179.png" src="#">
Хэш подчеркнут (в исходном представлении Chromium), и если я нажму на него, появится сообщение «Файл не найден: /web/out/»
Преобразованный в JS в Chrome говорится: «Ресурс интерпретируется как изображение, но передается с типом MIME text/html».
Исходный код находится на GitHub
Есть подсказки?