成都网站建设设计

将想法与焦点和您一起共享

AngularJS如何创建一个上传照片的指令-创新互联

这篇文章主要介绍了AngularJS如何创建一个上传照片的指令,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

创新互联专注于网站建设|网站维护|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖效果图设计等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身制作品质网站。

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

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

.directive('imageUpload',['Constants',function(Constants){
return {
  restrict: 'E',
  scope: {
    scopeModel:'=',
    title:'@'
  },
  template : '
'       +'{{title}}重新上传'       +''       + ''       + ''       + '
',   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),使用如下:

感谢你能够认真阅读完这篇文章,希望小编分享的“AngularJS如何创建一个上传照片的指令”这篇文章对大家有帮助,同时也希望大家多多支持创新互联成都网站设计公司,关注创新互联成都网站设计公司行业资讯频道,更多相关知识等着你来学习!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、网站设计器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章名称:AngularJS如何创建一个上传照片的指令-创新互联
文章位置:http://chengdu.cdxwcx.cn/article/dggheh.html