javascript - 在角度 6 中更改 img src 在完全加载之前不会显示新图像
问题描述
当我更新图像的源时,我的 Angular 应用程序出现了一些意外行为,我希望有人能帮助我。
我有这样的事情:
<img [src]="imageUrl" />
并在用户单击按钮查看下一张图片时更新我的组件中的 imageUrl。这行得通。
当第一张图片加载时,我看到它从上到下加载。
但是,后续图像不会以这种方式显示。当我更改 imageUrl 变量时,我可以在屏幕上的另一个位置看到 url 更改,但实际图像在完全加载之前不会更改,然后它会弹出到位。
所以我的问题是:有没有办法让后续图像以与原始图像相同的方式加载?我的一些图片可能非常大,并且在 100% 加载之前对用户很有用,所以我真的希望他们能够在加载时看到它们。
我尝试使用 document.getElementById 然后以这种方式更新 src 属性,不幸的是它似乎以相同的方式执行。如果我做这样的事情:
const container = document.getElementById('imagePlaceholder');
const img = document.createElement('img');
container.innerHTML = '';
img.setAttribute('src', this.imageUrl);
container.appendChild(img);
它确实以我想要的方式加载。
有任何想法吗?
编辑:找到了一些很好的示例图片来说明我从这里谈论的内容。第一个图像像这样加载,然后后续图像像这样加载(没有加载指示器)
编辑 2:想出了一个更好的解决方法。使用 *ngFor 并将 imageUrl 作为其中唯一的东西可以获得所需的结果。仍然很奇怪,但比摆弄dom好得多。
imageUrls = [ this.imageUrl ];
...
<img *ngFor="let url of imageUrls" [src]="url" />
解决方案
推荐阅读
- amazon-web-services - 将数据从与一个 AWS 账户关联的实时 RDS 数据库实例迁移到与另一个 AWS 账户关联的新 RDS 数据库实例
- ruby-on-rails - net::ERR_NAME_NOT_RESOLVED 对于明确定义的 Route
- xcode - 使用 pkgbuild 将自定义步骤添加到安装
- python-3.x - 配置不当:使用 Django 时 SQLite 3.9.0 或更高版本出错
- php - how to use twig in vue
- c - 直接 I/O 性能
- python - 如何修复 TypeError:__init__() 缺少 1 个必需的位置参数:'y'
- php - 如何使用安装在 Docker 外部的 Nginx 在 Docker 中代理 php-fpm 程序
- python - 我们如何使用 uvicorn 服务器在 cpanel 上部署 django 应用程序?
- android - 使用 Jetpack Compose Navigation 时导航图是否已过时?