发表于: 2017-02-16 20:42:39

2 1171


今天完成的事情:

1.图片上传的基本页面;

2.FileReader对象的使用,上传前的预览显示;

明天计划的事情:

完成任务9,开始任务10;

遇到的问题:

上传预览时候:使用到$apply来监视数据变化时候,会报错,但是能够正确显示预览图片。

获取到元素绑定到控制器时候卡住了很久:查了资料用以下方法:

onchange='angular.element(this).scope().自定义函数(this);但是不明白为什么要这样做。

收获:

2)使用FileReader对象的readAsDataURL(参数)方法,将URL变成base64编码的字符串。 

2)使用FileReader对象里面的onload()方法,立即以下执行匿名函数。 

3)使用this.result得到刚刚readAsDataURL(file)方法得到的字符串。这个字符串其实是URL另一种形式。 

4)原生创建一个新的img标签,其中src的值为刚才得到的URL。代码如下:

$scope.view = function (pic) {
$scope.files = pic.files;
   var reader = new FileReader();
   reader.readAsDataURL($scope.files[0]);
   reader.onload=function () {
console.log(this.result);
      /* $scope.$apply($scope.imgSrc=this.result);*/
      document.getElementById("oo").src=this.result;
   };

另外一种方法:

$scope.imgSrc = window.URL.createObjectURL($scope.files[0]);
$scope.$apply($scope.imgSrc);//在view中绑定ng-src;

这种方法会由于$apply的使用而报错但是不影响呈现效果;

                                    



返回列表 返回列表
评论

    分享到