【发布时间】:2013-03-25 10:54:06
【问题描述】:
在我的控制器中,我调用了一个服务。该服务向 PHP 文件发出请求,该文件为我提供了图像的 URL。
原因是图像位于“Media Vault”中,这意味着我需要像这样生成一个散列 URL 才能查看它:
http://xxxx.vo.llnwd.net/o35/s/xxx/test/thumbs/slide1.jpg?e=1365006137&h=5852aeaf5beeeebff05a601801b61568
上面的 URL 已经过期,因此您不会从该特定链接中看到任何内容。
我的图片标签是这样的:
<img id="thumbnail" class="glow" ng-src="{{currentThumb}}" width="200" height="150"/>
我的控制器中的 currentThumb 是:
$scope.currentThumb = ImageService.getImage({
'type' : 'thumb',
'index' : $scope.currentIndex + 1,
'location' : $scope.location
});
我的服务看起来像这样:
app.factory('ImageService', function($http)
{
var image = null;
return {
promise:null,
getImage: function($data)
{
this.promise = $http.post('resources/auth.php',$data, {timeout:20000}).success(function(response)
{
image = response;
log(response);
})
}
}
});
当前ImageService成功返回了一个URL(至少它在控制台中显示了该url)并且在控制台中单击日志结果时,图像加载正常。图像不更新的任何原因?
【问题讨论】:
-
我试过
thumbnail.src = ImageService.getImage({...});也没有运气。我得到http://localhost/vjs/undefined 404 not found -
收到回复后,如何在
getImage()中添加退货声明。还是你正在兑现你的承诺? -
我在设置
image = response后尝试了return image;,但仍然没有。就像$scope.currentThumb = ImageService.getImage({...});实际上并没有设置任何东西。一定是我的服务有问题? -
this.promise部分呢,您是在调用该方法来解决该承诺吗?尝试单独调用$http.post,而不将其设置为等于this.promise。还包括return image;部分。 -
我会做一个小提琴..也许你可以让它以某种方式工作
标签: javascript angularjs