[英]How is it possible to change an img src with javascript when the device size changes?
[英]How to force recreate <img /> when src changes?
我有一个像这样的 Angular 组件:
import { Component, Input } from '@angular/core';
@Component({
selector: 'picture',
templateUrl: './picture.html',
})
export class Picture {
@Input() pictureUrl: string;
}
<img src="{{pictureUrl}}" />
问题是,当pictureUrl
输入属性改变时,Angular只是改变了<img />
的src
属性,所以浏览器会显示上一张图片,直到加载新图片。 所需的行为是在加载新图片时不显示任何内容或逐步绘制新图片,而不是显示陈旧图片。 通常通过改变图片URL时重新创建<img />
DOM元素来解决。
所以问题是:如何在src
属性更改时强制 Angular 8 重新创建/重新挂载<img />
元素? 或者如何在 Angular 中解决所描述的问题?
为了澄清这个问题:如果我使用 React,我会通过将key={pictureUrl}
添加到<img />
来解决它。
您可以将load
事件绑定到图像
<img (load)="HideLoader()" />
加载图像后将触发 load 事件。 您可以在更改图像 src 后使用叠加层显示加载图标,并在加载图像后隐藏加载器,即load
事件被触发时。
您可以通过编写自己的 setter 来检测输入属性的变化
@Input() set thePictureURL(url: string) {
//show loader
this.pictureUrl = url;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.