加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 强制ng-src重新加载

发布时间:2020-12-17 09:05:12 所属栏目:安全 来源:网络整理
导读:当图像的URL没有改变,但是它的内容有没有改变时,如何强制angularjs使用ng-src属性重新加载图像? div ng-controller='ctrl' img ng-src="{{urlprofilephoto}}"/div 执行文件上传的uploadReplace服务会替换图片的内容,而不是网址。 app.factory('R4aFact',
当图像的URL没有改变,但是它的内容有没有改变时,如何强制angularjs使用ng-src属性重新加载图像?
<div ng-controller='ctrl'>
    <img ng-src="{{urlprofilephoto}}">
</div>

执行文件上传的uploadReplace服务会替换图片的内容,而不是网址。

app.factory('R4aFact',['$http','$q','$route','$window','$rootScope',function($http,$q,$route,$window,$rootScope) {
    return {
        uploadReplace: function(imgfile,profileid) {
            var xhr = new XMLHttpRequest(),fd = new FormData(),d = $q.defer();
            fd.append('profileid',profileid);
            fd.append('filedata',imgfile);
            xhr.onload = function(ev) {
                var data = JSON.parse(this.responseText);
                $rootScope.$apply(function(){
                    if (data.status == 'OK') {
                        d.resolve(data);
                    } else {
                        d.reject(data);
                    }
                });
            }
            xhr.open('post','/profile/replacePhoto',true)
            xhr.send(fd)
            return d.promise;
        }
    }
}]);

当uploadReplace返回时,我不知道如何强制图像重新加载

app.controller('ctrl',['$scope','R4aFact',function($scope,R4aFact){
    $scope.clickReplace = function() {
        R4aFact.uploadReplace($scope.imgfile,$scope.pid).then(function(){
            // ??  here I need to force to reload the imgsrc 
        })
    }
}])
一个简单的解决方法是将一个唯一的时间戳附加到ng-src以强制重新加载图像,如下所示:
$scope.$apply(function () {
    $scope.imageUrl = $scope.imageUrl + '?' + new Date().getTime();
});

要么

angular.module('ngSrcDemo',[])
    .controller('AppCtrl',function ($scope) {
    $scope.app = {
        imageUrl: "http://example.com/img.png"
    };
    var random = (new Date()).toString();
    $scope.imageSource = $scope.app.imageUrl + "?cb=" + random;
}]);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读