AngularJS创建一个上传照片的指令实例代码


Posted in Javascript onFebruary 24, 2018

angularJS在近几年发展火热,也无疑是目前市面上来说比较牛逼且成熟的框架,在单页面前端应用当中应该可以说是王者,双向绑定省去了大量的前端代码,控制器在其作用于方面的控制也是相当腻害,今天我们要说的是另外一个比较牛逼的功能,就是angularJS的指令directive,之前没听说过angularJS指令的朋友请自行度娘,随便搜一条文章都比我说的详细,这次用一个我自己写的图片上传的指令来做为案例,详细说明一下实际操作过程中的指令。

之前我们前端的附件上传用的是jqueryFileUpload,每次使用都要在页面把样式画好,然后再控制器中初始化upload组件,上传成功或失败时候还要做相应的处理,这样每次写一个附件上传都要写代码去处理,这样很重复劳动,所以就想利用angularJS的指令把重复劳动的环节给去掉,具体代码如下:

.directive('imageUpload',['Constants',function(Constants){
return {
  restrict: 'E',
  scope: {
    scopeModel:'=',
    title:'@'
  },
  template : '<fieldset>'
      +'<legend>{{title}}<span class="fileinput-button"><span>重新上传</span>'
      +'<input type="file" name="file"></span></legend>'
      + '<span class="profile-picture">'
      + '<img class="img-responsive" alt="{{title}}" ng-src="{{loadImg(scopeModel)}}" style="display: block;"/>'
      + '</fieldset>',
  link : function(scope, element, attrs) {
    $(element).fileupload({
      url: 'file/upload',
      dataType: 'json',
      done: function(e, data) {
        var res = data.result;
        if(res.success){
          scope.scopeModel=res.data.fileKey;
          scope.$apply();
        }
      }
    });
    scope.loadImg=function(key){
      if(undefined==scope.scopeModel || null==scope.scopeModel || scope.scopeModel===''){
        return $.ctx+'/images/noImage.jpg';
      }
      if(scope.scopeModel.indexOf('http://')>-1){
        return scope.scopeModel;
      }
      return $.ctx+'/file/getFile?fileKey='+scope.scopeModel;
    }
  }
};
}]);

指令完成之后在前端页面上只需要写一行代码就可以完成照片的加载(如果是修改页面需要加载出原照片)和上传功能,其中scopeModel是用来双向绑定的,在调用的时候把controller中的model传递进去之后可以实现指令和controller之间的双向绑定,代码中的template为element模板,可以根据具体的样式自己更换(我用的是bootstrap),使用如下:

<image-upload scope-model="imagePath" title="照片上传"></image-upload>

总结

以上所述是小编给大家介绍的AngularJS创建一个上传照片的指令实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js form action动态修改方法
Nov 04 Javascript
关于Mozilla浏览器不支持innerText的解决办法
Jan 01 Javascript
jquery删除指定子元素代码实例
Jan 13 Javascript
javascript实现动态统计图开发实例
Nov 21 Javascript
文件上传的几个示例分享【推荐】
Dec 16 Javascript
vue中的非父子间的通讯问题简单的实例代码
Jul 19 Javascript
Angular学习教程之RouterLink花式跳转
May 03 Javascript
Layui 动态禁止select下拉的例子
Sep 03 Javascript
微信小程序利用云函数获取手机号码
Dec 17 Javascript
vue中使用vue-print.js实现多页打印
Mar 05 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
Jun 26 Javascript
JS中如何优雅的使用async await详解
Oct 05 Javascript
javaScript动态添加Li元素的实例
Feb 24 #Javascript
jquery动态添加带有样式的HTML标签元素方法
Feb 24 #jQuery
node.js中fs文件系统目录操作与文件信息操作
Feb 24 #Javascript
jQuery动态添加li标签并添加属性和绑定事件方法
Feb 24 #jQuery
使用puppeteer破解极验的滑动验证码
Feb 24 #Javascript
Vue的elementUI实现自定义主题方法
Feb 23 #Javascript
elementui的默认样式修改方法
Feb 23 #Javascript
You might like
php pack与unpack 摸板字符字符含义
2009/10/29 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
微信小程序利用co处理异步流程的方法教程
2017/05/20 Javascript
mongoose中利用populate处理嵌套的方法
2017/05/26 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
小程序实现单选多选功能
2018/11/04 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
jQuery 移除事件的方法
2020/06/20 jQuery
JS实现小米轮播图
2020/09/21 Javascript
react-intl实现React国际化多语言的方法
2020/09/27 Javascript
[02:26]2016国际邀请赛8月3日开战 中国军团出征西雅图
2016/08/02 DOTA
Python解析excel文件存入sqlite数据库的方法
2016/11/15 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
Python3多线程操作简单示例
2018/05/22 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
PyTorch 对应点相乘、矩阵相乘实例
2019/12/27 Python
Python networkx包的实现
2020/02/14 Python
python 字符串的驻留机制及优缺点
2020/06/19 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
酒店经理职责
2014/01/30 职场文书
技术比武方案
2014/05/19 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书