在我看来,我在用户个人资料中显示了一张照片,在我看来,我有:
<img src="{{user.photo.pathRelative}}"/><br/>
当用户上传新照片时,会将其上传到服务器并更新路径中的图片。结果是图片的数据发生了变化,但是user.photo.pathRelative保持不变。这就是为什么视图中的图片不会改变的原因。
任何想法如何强制视图刷新图片,即使模型上的值没有改变(但是下面的数据被更改)?
答案 0 :(得分:2)
你需要使用ng-src(只是一个FYI)。
<img ng-src="{{user.photo.pathRelative}}{{randomStr}}"/><br/>
然后在上传后设置随机字符串。
$scope.randomStr = '?randomStr=' + new Date().getTime();
缺点是刷新后无法正常工作......
如果您想要下面提到的@Tom,您也可以将两者合并。我不喜欢这样做,但是你正在修改一个可以保存的“对象”。例如,如果您使用ng-resource并修改了pathRelative,然后修改了$ save,则会导致在数据库中更新pathRelative。
答案 1 :(得分:0)
问题是图像是缓存的。要解决此问题,您可以将pathRelative设置为路径+当前日期,例如:
$scope.user.photo.pathRelative = "/somePath?" + new Date().getTime();
并在更改时更新