发表于: 2017-07-18 21:29:23

1 1030


今天这篇日报,主要总结关于图片上传的内容

1. 首先是关于图片上传的angularjs引入

原本使用的是自己引入的一版angularjs-file-upload,但是实际去做图片上传的时候发现这个版本比较老,会导致自定义指令的报错,所以改用了cdn链接

<script src="//cdn.bootcss.com/angular-file-upload/2.1.4/angular-file-upload.min.js"></script>

2. 在add页面增添对应的html内容

<up-loader label-name="配图" ng-model="params.img" tip="文章配图"></up-loader>

add页面是信息新增页面,这里使用了语义化标签,可参考:http://damoqiongqiu.iteye.com/blog/1917971,这里通过angularjs的directive机制向add插入了html内容

它对应的js

angular.module('theApp')

/*传图片*/
   .directive('upLoader',[
       //directive是注册指令,后面的内容会被注册成一个html标签
       'FileUploader',
       function (
           FileUploader
) {
           return {
               restrict: 'E', //改变dom的命令,ECMA
               templateUrl: '/pic/upload.html',
               scope: {
                   logoUrl: '=ngModel',//图片上传后地址
       labelName: '@',
                   tip:'@'//提示语
               },

.directive后面的内容会被变成一个语义化标签,通过它触发函数function(fileuploader),restrict属性应用可参考https://my.oschina.net/yongqing/blog/296255,根据属性,E表示这个指令是一个元素,通过templateUrl将这一指令插入的html文件链入,其中图片上传后地址将会进行双向绑定

3. 引入的upload.html

<input id="ffe" style="display: none" type="file" accept=".jpg,.png,.bmp" class="form-control" nv-file-select=""
      uploader="uploader" multiple
ng-click="clearItem()" onchange="angular.element(this).scope().$parent.getUrl(this.files)"
      required>

通过input type=“file”上传图片,通过onchange事件获得当图片被上传时该图片的url,并通过ng-click事件触发函数,点击上传时清空待上传图片队列

运用ng-show 指令,在表达式为 true 时显示指定的 HTML 元素(否则隐藏指定的 HTML 元素),显示待上传图片,

<div ng-show="uploader.queue.length||logoUrl">
   <img style="max-height: 300px" ng-src="{{imgURL||logoUrl}}">
   <br>
   <br>
</div>

上传相关部分代码参考图片上传插件

通过上传和删除button绑定ng-click事件,触发对应的函数进行增加和删除操作


返回列表 返回列表
评论

    分享到