Angular 9 | Firebase 存储 |在 [object%20HTMLImageElement] 上获取 404 错误

Angular 9 | Firebase Storage | GET 404 error on [object%20HTMLImageElement]

我目前正在我的 Angular 项目中实现图片上传。我正在使用 Firebase 存储来存储这些图像。

在我的 HTML 文件中,我检查图像是否可用,如果可用,则显示它:

<img *ngIf="avatar" [src]="avatar" #avatar>

上传图片后设置头像。上传头像时,我试图将其作为预览显示到我的模板中。然后我得到这个错误:

GET http://localhost:4200/[object%20HTMLImageElement]

头像变量只是一个字符串 URL: https://firebasestorage.googleapis.com/v0/b/openix-crm.appspot.com/o/contact_images%2F2014-07-24%2021.23.45.jpg?alt=media&token=90018c6d-3316-4db4-911b-dd7d204c84aa

我已经试过了,运气不太好:

<img *ngIf="avatar" [attr.src]="avatar" #avatar>
<img *ngIf="avatar" [src]="avatar | async" #avatar>

看起来模板引用 #avatar 被用作值而不是另一个 avatar 变量(我假设它存在于 *.component.ts 文件中) .您可以重命名所有 #avatar 和它对 #avatarTemplate 之类的引用,或者相反 - 重命名 avatar 变量(在 .ts 中并保存 url)和它对 avatarUrl.

的引用

如果您在 .ts 中也有 avatar 作为模板引用变量,请创建一个新变量来保存 url(类似于 avatarUrl)并将其存储在那里.

编辑(抱歉,我没有足够的声誉发表评论):虽然我从未遇到让 Angular 解析字符串 URL 的问题,@Silvermin 的回答也有效,但请确保您重命名 #avatar 及其引用或创建一个新变量来保存 url(以您方便的为准),然后尝试他们的答案:)