在离子中,我有一系列图像键。使用这些密钥,我们希望获得Amazon S3签名的URL。
我有:
<div *ngFor="let image of item.images">
<div>Key: {{image}} -- Url: {{getImageUrl(image) }}</div>
</div>
在Javascript部分我有以下内容:
getImageUrl(imageKey) {
this.s3.getSignedUrl('getObject', {'Key': imageKey}, (err, url) => {
console.log(url);
return url;
});
}
在日志中,我确实看到了URL正确无误。但是在html页面中;空无一物。我尝试了很多东西;例如通过让方法getImageUrl创建一个新变量;这仍未定义。
我应该如何修改我的代码才能使其正常工作?
我强烈认为这是由angularJS / Ionic / ...的异步性质引起的,而且我可能需要使用回调。然而;我无法理解如何将回调转换为HTML ... 我希望这是一个初学者的问题!
谢谢!
答案 0 :(得分:0)
问题是如果你想显示图像,你应该使用标签,空div不显示任何东西,试试这个
<div *ngFor="let image of item.images">
<div>
<h1> Key: {{image}} -- Url: {{getImageUrl(image) }}
</h1>
<img *ngIf="image" [src]= {{getImageUrl(image) }}>
</div>
</div>