发表于: 2017-05-12 21:50:21

1 938


任务九

今天完成的事情

  1. 1实现图片上传预览功能。
  2. 2.实现上传多张图片图片功能。
  3. 3.用ui-bootstrap的侧边栏插件替代之前的jquery插件。
  4. 4.实现删除上传的图片功能。
  5. 明天计划的事情

  1. 1将今天写的文件上传应用到后台管理项目中。
  2. 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. 1 学会了数据的几种编码格式。

  3. 2 学会了文件的相关属性和方法。

  4. 3学会了angular.element这种操作。



返回列表 返回列表
评论

    分享到