Ng-src更新,但src在删除照片时不会

时间:2014-04-22 09:37:02

标签: javascript angularjs angularjs-directive

问题的背景:

我正在使用此问题的解决方案:How to update AngularJS view when the value has not changed? 所以在我看来,我有:

 <img ng-src="{{user.photo.pathRelative}}{{randomStr}}" alt=""/>

当我更改照片时,我在我的控制器中运行以下代码:

 $scope.user.photo.pathRelative = somePathToPhoto;
 $scope.randomStr  = '?randomStr=' +  new Date().getTime();

这导致以下html(并且每个都可以正常工作):

<img ng-src="img/profiles/5350f142dd9624b818d90007/5350f142dd9624b818d90007.png?randomStr=1398159116845" alt="" src="img/profiles/5350f142dd9624b818d90007/5350f142dd9624b818d90007.png?randomStr=1398159116845">

问题:

现在我想允许用户删除这张照片,所以当他点击删除按钮时我会这样做:

 $scope.user.photo.pathRelative = '';
 $scope.randomStr  = '';

然而,这导致以下html:

<img ng-src="" alt="" src="?randomStr=1398159116845">

所以src属性仍然设置,因此浏览器尝试渲染它,但显然路径无效。

为什么这个src被设置为不正确的值的任何提示?

2 个答案:

答案 0 :(得分:4)

如果未设置路径,您可以设置ng-if以删除img元素。

答案 1 :(得分:0)

这是一个已知问题(实际上这是设计上的)。请参阅此link和解决方法。