0

使用 Angular 1.2.3,我有这样的服务:

var itemService = function ($resource) {
    return $resource('/rest/item', {action: ''}, {
        query: {method: 'GET'}
    });
};
services.factory('Item', ['$resource', itemService]);

在我的控制器中,我想保存一个项目,所以我这样做了

$scope.item = Item.query(); // this returns 1 item
$scope.puppet.$save(); // this results in the desired POST on my service

POST 处理程序生成可能需要一段时间的图像。我知道 $save 调用会立即返回,因为调用是异步的。一旦 POST 处理程序完成,它就会返回一个带有 booleancalculationDone = true 的 Item,这反映在 $scope 中。

<div ng-show="item.calculationsDone"><img ng-src="{{src/of/image.jpg}}"/></div>

现在我想显示生成的图像。我正在使用上面的html。我已经知道生成图像的 URL,但我不能把它放在 ng-src 中,因为它还没有解析。

一旦项目的状态发生变化,我如何更新或重新应用 ng-src?

我需要使用承诺吗?还是$手表?

4

1 回答 1

1

这样的事情怎么样?

$scope.imageSrc = "";
scope.puppet.$save(function(value, responseHeaders) {
 $scope.imageSrc = "src/of/image.jpg";
})

<img ng-src="{{imageSrc}}"/>

我猜另一个选项是 ng-if="item.calculationsDone" 用于图像元素。一旦表达式的计算结果为真,img 元素就会被附加到 DOM。在此之前它不是 DOM 的一部分 -> 图像也不会被加载。

于 2013-12-05T21:40:08.040 回答