如何在值未更改时更新AngularJS视图?

时间:2014-04-18 13:19:25

标签: javascript angularjs angular-ui

在我看来,我在用户个人资料中显示了一张照片,在我看来,我有:

 <img src="{{user.photo.pathRelative}}"/><br/>

当用户上传新照片时,会将其上传到服务器并更新路径中的图片。结果是图片的数据发生了变化,但是user.photo.pathRelative保持不变。这就是为什么视图中的图片不会改变的原因。

任何想法如何强制视图刷新图片,即使模型上的值没有改变(但是下面的数据被更改)?

2 个答案:

答案 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();

并在更改时更新