如何在角度js中检查服务器上是否存在图像?

时间:2015-08-27 06:29:31

标签: angularjs

我有一篇最近的文章部分,我需要验证服务器上是否存在图像。

我尝试了一些正确验证的教程,但它没有向ng-if指令返回任何值。

这是我最近的文章部分: -

 <div ng-controller="RecentCtrl">

        <div class="col-md-3" ng-repeat="items in data.data" data-ng-class="{'last': ($index+1)%4 == 0}" bh-bookmark="items" bh-redirect>
                                                        <div class="forHoverInner">
   <span class="inner">
   <span class="defaultThumbnail">
<span ng-if="test(app.getEncodedUrl(items.bookmark_preview_image))" style="background-image: url('{{app.getEncodedUrl(items.bookmark_preview_image)}}'); width: 272px; height: 272px; " class="thumb" variant="2"></span></span></span> </div>
</div></div>

这是我最近的文章控制器: -

app.controller('RecentCtrl', function($scope, $http, $rootScope, RecentArticleFactory,$q) {
$scope.test = function(url) {
        RecentArticleFactory.isImage(url).then(function(result) {
            return result;
        });
    };

})

这是最近的aricle工厂代码: -

app.factory("RecentArticleFactory", ["$http", "$q", function ($http, $q) {
 return {
isImage: function(src) {

            var deferred = $q.defer();

            var image = new Image();
            image.onerror = function() {
                deferred.resolve(false);
            };
            image.onload = function() {
                deferred.resolve(true);
            };
            image.src = src;

            return deferred.promise;
        },
}

})

但是

  

ng-if =“test(app.getEncodedUrl(items.bookmark_preview_image))”“不返回任何值

任何想法?

0 个答案:

没有答案