发表于: 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的使用而报错但是不影响呈现效果;
评论