检测具有相同名称但不同值的 Angular 绑定的更改?

Posted

技术标签:

【中文标题】检测具有相同名称但不同值的 Angular 绑定的更改?【英文标题】:Detect Change in Angular binding with same name but different value? 【发布时间】:2020-04-04 15:59:55 【问题描述】:

我正在使用个人资料图像更改 api。每次我更改图像时,我都会从服务器返回更改后的图像,但使用 相同的 urlsay test.jpeg)。

  url: string; 

 <img [src]="url" />

 url : test.jpeg   // url returned from server on image change first time
 url : test.jpeg   // url returned from server on image change second time
 url : test.jpeg   // url returned from server on image change third time

虽然服务器返回不同的图像角度无法检测,因为 url 没有变化。如何解决?

【问题讨论】:

你使用任何changeDetectionStrategy吗? 分享获取/更新个人资料图片的代码。 API 响应到达时,您需要为 url 分配新值。 API 响应中的旧值(url)和新值(url)相同。只有服务器内的图像内容发生变化 这可能会帮助你***.com/questions/35936535/… 【参考方案1】:

简单的方法是添加一些虚假的查询参数。

 get src() 
   return this._imageSrc + '?q=' + this.hash;
 

 pictureWasUpdated() 
  this.hash = Math.random().toString(16)
 

【讨论】:

以上是关于检测具有相同名称但不同值的 Angular 绑定的更改?的主要内容,如果未能解决你的问题,请参考以下文章

ngFor 中的 Angular 动态事件名称

Angular 6 在指令本身中获取所有具有相同方向名称的元素

Angular 2 方式绑定组件 - 检查后表达式已更改

如果我有 2 个具有相同视图但逻辑不同的 Angular 组件,如何正确构建代码?

打字稿:创建具有相同键但不同值的对象

Angular JS:具有绑定值的内联样式适用于 Mac 而不是 Windows