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 相关文章推荐
javascript 解决表单仍然提交即使监听处理函数返回false
Mar 14 Javascript
JavaScript转换农历类实现及调用方法
Jan 27 Javascript
jQuery中Dom的基本操作小结
Jan 23 Javascript
解析JavaScript的ES6版本中的解构赋值
Jul 28 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
Sep 07 Javascript
点评js异步加载的4种方式
Dec 22 Javascript
AngularJS折叠菜单实现方法示例
May 18 Javascript
在bootstrap中实现轮播图实例代码
Jun 11 Javascript
实例详解Node.js 函数
Jun 10 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
Jul 28 Javascript
解决Element中el-date-picker组件不回填的情况
Nov 07 Javascript
详解vue修改elementUI的分页组件视图没更新问题
Nov 13 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+Mysql实现多关键字与多字段生成SQL语句的函数
2014/11/05 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
php计算给定日期所在周的开始日期和结束日期示例
2017/02/06 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
2014/02/12 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
2016/12/19 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
Vue.js在数组中插入重复数据的实现代码
2017/11/17 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
Python字符串详细介绍
2015/05/09 Python
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
python3.5 tkinter实现页面跳转
2018/01/30 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
python保存二维数组到txt文件中的方法
2018/11/15 Python
基于HTML5代码实现折叠菜单附源码下载
2015/11/27 HTML / CSS
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
医学院学生求职简历的自我评价
2013/10/24 职场文书
经管应届生求职信
2013/11/17 职场文书
小学生综合素质评语
2014/04/23 职场文书
《三亚落日》教学反思
2014/04/26 职场文书
幼儿发展评估方案
2014/06/11 职场文书
校园主题婚礼活动策划方案
2014/09/15 职场文书
员工工作自我评价
2014/09/26 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
Python简易开发之制作计算器
2022/04/28 Python