代码改变世界

angularjs图片上传后不刷新的解决办法

2015-07-24 16:50  风来之东林  阅读(842)  评论(0编辑  收藏  举报

刚接触angularjs在使用的过程中遇到这个问题

 

首先我们的图片地址是根据ID来获取的,所以用了指令来完成图片的绑定

.directive("cImg", ['appUrl', function (appUrl) {
    return {
        restrict: 'A',
        link: function (scope, element, attrs) {
            var url = appUrl+ "/GetImgUrl";
            var para = { id: attrs.id};
            scope.baseService.post(url, para, function (data) {
                $(element).attr("src", data.d);
            });
        }
    };
}])

  

 <img c-img id="{{id}}" width="200" height="120" alt="">

 

但是这样的话上传图片后如果不刷新页面的话图片地址是不会更新的,解决方法是用一个$scope变量来记录是否显示图片,这样在更新这个变量后就会刷新图片了

 

<img ng-if="IsShowImg" c-img id="{{id}}" width="200" height="120" alt="">

  

 function () {
        var url = url+ "/up_load";
        //上传之前设置为false  隐藏图片
        $scope.IsShowImg=false;
        $scope.baseService.post(url, {}, function (data) {
            //上传成功后显示图片
            $scope.IsShowImg = true;
        });
    }