Javascript 角度ng显示处理后不工作以显示图像
当用户单击文件时,会在某个点调用此函数。目标是进行一些处理并显示加载条。在某个时刻,图像被处理,因此我将loadingPicture设置为true。 此时,我想用图片替换加载条Javascript 角度ng显示处理后不工作以显示图像,javascript,html,angularjs,Javascript,Html,Angularjs,当用户单击文件时,会在某个点调用此函数。目标是进行一些处理并显示加载条。在某个时刻,图像被处理,因此我将loadingPicture设置为true。 此时,我想用图片替换加载条 $scope.getGraph = function(hash) { if ($scope.clickedFile.hash == hash) return; $scope.graph = ""; $scope.pictureLoaded = false;
$scope.getGraph = function(hash) {
if ($scope.clickedFile.hash == hash) return;
$scope.graph = "";
$scope.pictureLoaded = false;
$scope.loadingPic = true;
if (hash) {
$http({
method: "GET",
url: $rootScope.baseUrl+"api/file/" + hash + '?graph' ,
}).then(function mySucces(response) {
$scope.graph = response.data;
$scope.pictureLoaded = true;
$scope.loadingPic = false;
console.log('picture loaded')
}, function myError(response) {
//handling errors
});
}
}
但这也不起作用:(
谢谢改用$timeout。 例如:
if(!$scope.$$phase) {
//$digest or $apply}
可能是缓存问题 我不知道response.data的具体内容是什么,但是如果它是与以前相同的图形,则除非您在图像上加上时间戳,否则图像将不会刷新 您可以尝试添加:
$timeout(()=>{
$scope.$apply();
}, 1);
图像将在每次更新时刷新,即使图形内容相同。好的,我的坏。数据不是从前端进行b64编码的。由于某种原因,如果我们更改页面,它仍会显示。
谢谢您确定图像路径正确吗?没有路径它是
ng src=“data:image/png;base64,{{graph}”
我确信数据是正确的。如果我离开这个页面回来,图像就会显示出来。但是我需要它立即显示在页面上,只是为了排除简单的错误:你确定mySuccess
会被调用并且$scope.pictureLoaded
会被写入正确的范围吗?是的,因为正如我在前面的评论中所说我转到另一页并返回,然后图像显示可能是缓存问题?例如,如果上载新图像,但链接保持不变,则不会更新。您必须在图像源的参数中添加时间戳(或随机数)
$timeout(()=>{
$scope.$apply();
}, 1);
$scope.graph = $scope.graph + "?ts=" + new Date().getTime();