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

 更新时间:2018年02月24日 09:20:17   投稿:mrr  
这篇文章主要介绍了AngularJS创建一个上传照片的指令实例代码,需要的朋友可以参考下

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创建一个上传照片的指令实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Angular模板表单校验方法详解

    Angular模板表单校验方法详解

    这篇文章主要为大家详细介绍了Angular模板表单校验方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Angular项目从新建、打包到nginx部署全过程记录

    Angular项目从新建、打包到nginx部署全过程记录

    一直比较喜欢angular,正巧最近有个项目用到了,所以想和大家来分享下,下面这篇文章主要给大家介绍了关于Angular项目从新建、打包到nginx部署的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2017-12-12
  • AngularJS控制器controller正确的通信的方法

    AngularJS控制器controller正确的通信的方法

    AngularJS中的controller是个函数,用来向视图的作用域($scope)添加额外的功能,我们用它来给作用域对象设置初始状态,并添加自定义行为
    2016-01-01
  • 在Angular使用ng-container元素的操作详解

    在Angular使用ng-container元素的操作详解

    ng-container 是 Angular 2+ 中可用的一个元素,可以作为结构指令的宿主,在本文中,您将探讨可以使用 ng-container 解决的场景,文中有相关的代码示例供大家参考,具有一定的参考价值,需要的朋友可以参考下
    2024-02-02
  • AngularJS使用ng-inlude指令加载页面失败的原因与解决方法

    AngularJS使用ng-inlude指令加载页面失败的原因与解决方法

    这篇文章主要介绍了AngularJS使用ng-inlude指令加载页面失败的原因与解决方法,对比不同浏览器错误提示分析了加载失败的原因及通过http访问的解决方法,需要的朋友可以参考下
    2017-01-01
  • angular4模块中给标签添加背景图的实现方法

    angular4模块中给标签添加背景图的实现方法

    下面小编就为大家带来一篇angular4模块中给标签添加背景图的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • angular 实时监听input框value值的变化触发函数方法

    angular 实时监听input框value值的变化触发函数方法

    今天小编就为大家分享一篇angular 实时监听input框value值的变化触发函数方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • AngularJS 2.0入门权威指南

    AngularJS 2.0入门权威指南

    这篇文章主要介绍了AngularJS 2.0入门权威指南的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • AngularJS入门教程之表格实例详解

    AngularJS入门教程之表格实例详解

    本文主要介绍AngularJS 表格,这里给大家整理了相关知识,并附代码实例,有需要的小伙伴可以参考下
    2016-07-07
  • 在 Angular 中实现搜索关键字高亮示例

    在 Angular 中实现搜索关键字高亮示例

    本篇文章主要介绍了在 Angular 中实现搜索关键字高亮示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03

最新评论