发表于: 2017-05-12 21:50:21
1 938
任务九
今天完成的事情
- 1实现图片上传预览功能。
- 2.实现上传多张图片图片功能。
- 3.用ui-bootstrap的侧边栏插件替代之前的jquery插件。
- 4.实现删除上传的图片功能。
明天计划的事情
- 1将今天写的文件上传应用到后台管理项目中。
- 2将上传的图片添加到form-data中,并通过$http上传。
遇到的问题
1.对于这些文件相关的对象和属性不太熟悉,好在任务步骤里写清楚了相关知识点,按照知识点一个一个百度,也算是知道了如何在js中实现图片预览。
2.在angular中,不能按照js的写法,所以有些地方要改一下,js中图片预览这些方法是绑定在input的onchange方法上的。所以在angular中要使用ng-onchange,但是ng-onchange需要有ng-model才行,而这里ng-model不太好写,网上查了一波发现了一种挺有意思的写法:
<input type="file" onchange="angular.element(this).scope().imgUpload(this.files)" value="图片上传">
这种写法可以将控制器中的方法绑定到input元素的onchangge方法上。
3.数据同步的问题,比如在html中,img标签有一个ng-src指令。
<div ng-repeat="item in imgLists">
<!-- 图片预览框-->
<label>
<img ng-src="{{item.imgSrc}}" style="width: 200px;height: 200px" alt="图片预览"/>
</label>
</div>
控制器中对这个item.imgsrc进行了初始化
$scope.imgLists={};
var reader = new FileReader();
$scope.imgUpload=function (files)
reader.onloadend=function (e) {
var guid = (new Date()).valueOf();
$scope.imgLists[guid] = {
imgSrc : this.result //接收base64
};
$scope.$apply();
}
};
为什么在onchange方法里面改变了
item.imgSrc
这个值后要重新绑定一下,是只有ng-model的才会同步吗?
收获
1 学会了数据的几种编码格式。
2 学会了文件的相关属性和方法。
3学会了angular.element这种操作。
评论