Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度ng显示处理后不工作以显示图像_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 角度ng显示处理后不工作以显示图像

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;

当用户单击文件时,会在某个点调用此函数。目标是进行一些处理并显示加载条。在某个时刻,图像被处理,因此我将loadingPicture设置为true。 此时,我想用图片替换加载条

        $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();