У меня есть служба, которая возвращает 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 уже в процессе (что имеет смысл). Дело в том, что после обычного дайджеста (например, при других изменениях ui) применяется стиль, и я вижу правильное изображение.
Что мне здесь не хватает?
Update: Я создал скрипт JS, который демонстрирует эту проблему... выглядит как ошибка в angular для меня.