Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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 角度ajax图像未更新_Javascript_Angularjs_Ajax - Fatal编程技术网

Javascript 角度ajax图像未更新

Javascript 角度ajax图像未更新,javascript,angularjs,ajax,Javascript,Angularjs,Ajax,因此,我有以下代码: <body lang="en-US" ng-app="socket-server" ng-controller="imageValidationController"> <div class="image-panel"> <h1>Images Found:</h1> <div class="image-list" ng-repeat="image in images">

因此,我有以下代码:

<body lang="en-US" ng-app="socket-server" ng-controller="imageValidationController">
    <div class="image-panel">
        <h1>Images Found:</h1>
        <div class="image-list" ng-repeat="image in images">
            <p>Image size: {{image.size}}</p>
            <p>Width: {{image.width}}</p>
            <p>Height: {{image.height}}</p>
            <img class="image" ng-src="{{image.image}}">
        </div>
        <p>Total images found: {{num_images}}</p>
    </div>
我已经证实它是有效的


一切正常,图像大小、宽度、高度都得到更新,但图像没有更新。它确实使用正确的源创建了一个图像标记,但根本不加载图像。我不确定我做错了什么。

唯一的问题是响应数据。应该是

之前:

{
    images: [ 
        {
            image: 'http://someurl.com/image.jpg',
            size: 471812
            width: 640
            height: 480
        }
    ]
}
{
    images: [ 
        {
            image: 'http://someurl.com/image.jpg',
            size: 471812,
            width: 640,
            height: 480
        }
    ]
}
之后:

{
    images: [ 
        {
            image: 'http://someurl.com/image.jpg',
            size: 471812
            width: 640
            height: 480
        }
    ]
}
{
    images: [ 
        {
            image: 'http://someurl.com/image.jpg',
            size: 471812,
            width: 640,
            height: 480
        }
    ]
}
这里是一个适当的响应数据摆弄,它的作品伟大


也许它可以像向图像URL添加一个decache查询字符串一样简单?即

.then(function(response) {
        $scope.images = response.data.images;
        $scope.num_images = response.data.num_images;

      angular.forEach( $scope.images.image ,  function(url, key) {         
       $scope.images[key].image= url+ '?decache=' + Math.random();
    })

基本上,post数据中的url不是真正的gif。这是一个带有gif的html页面,所以没有加载它

如果我对帖子数据使用另一个图像url,它就可以正常工作:

app.controller('imageValidationController', function($scope, $http) {
    $http({
        method: 'POST',
        //should work fine now
        data: 'html=<html><body><img src="https://media3.giphy.com/avatars/nikdudukovic/ylDRTR05sy6M.gif"> </body>', 
        url: '/app/image-validation',
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    })
    .then(function(response) {
        $scope.images = response.data.images;
        $scope.num_images = response.data.num_images;
    })

})

显示你的
/app/image validation
s代码…你所要知道的是它工作正常并且返回了正确的响应。如果你的数据没有问题(检查Murali的答案),你能确保图像路径确实存在并且你没有用css或其他东西隐藏图像吗?我弄清楚了它是什么,所讨论的url不是真正的图像,所以它不起作用。如果我尝试使用另一个图像url,它会起作用。谢谢你们的帮助,我会留下一个答案来解释发生了什么
{
    "images":[
        {
             "image": "https://media3.giphy.com/avatars/nikdudukovic/ylDRTR05sy6M.gif",
             "size": 337783,
             "width": 250,
             "height": 250,

        }
    ],
    "num_images": 1
}