【发布时间】:2014-06-13 00:33:07
【问题描述】:
我有一个返回图像 URL 的服务,它使用以下代码调用:
angular.forEach(results, function (item) {
item.img = "/images/searchItem.jpg";
$http.post("https://my.api.com/?id=" + item.id).success(
function (url) {
item.img = url;
});
});
在我看来,我曾经有一张带有 ng-src 属性的图像,效果非常好:
<img ng-src="{{item.img}}">
然后我决定在 SPAN 上使用背景图像:
<span ng-style="{'background':'transparent url({{item.img}})'}"></span>
现在该流程仅在第一次运行时有效,之后我可以(在控制台中)看到以下 html
<span ng-style="{'background':'transparent url(http://expertsimages.liveperson.com/images/rating/rate10.gif)'}" style="background-image: url(https://fb.lp-chat.com/images/searchItem.jpg); background-color: transparent; background-position: initial initial; background-repeat: initial initial;"></span>
表示变量已更新,但 html 仍处于初始状态。
我尝试在发布成功时调用 apply/digest,但收到一个错误 $digest already in progress(这是有道理的)。奇怪的是,在正常的摘要之后(例如在其他 ui 更改上),样式被应用并且我看到了正确的图像。
我在这里错过了什么?
更新: 我创建了一个 JS fiddle 来演示这个问题......对我来说看起来像是一个有角度的错误。
【问题讨论】:
标签: javascript html css angularjs