angularjs實現(xiàn)多張圖片上傳并預覽功能
更新時間:2017年02月24日 13:56:37 作者:zxj娟娟
這篇文章主要為大家詳細介紹了angularjs實現(xiàn)多張圖片上傳并預覽功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了angularjs上傳多張圖片并預覽的具體代碼,供大家參考,具體內(nèi)容如下
directive.js
/* * 多圖片上傳及預覽指令(需指定圖片類名) * */ angular.module('routerModule').directive('fileModel', ['$parse', 'fileReader', function($parse, fileReader) { return { restrict:'A', link:function(scope, element, attrs, ngModel) { var model = $parse(attrs.fileModel); var modelSetter = model.assign; var imgviewID = attrs["imgViewId"]; var imgView = angular.element(document.querySelector("."+imgviewID)); element.bind('change', function(event) { scope.$apply(function() { modelSetter(scope, element[0].files[0]); }); //附件預覽 scope.file = (event.srcElement || event.target).files[0]; fileReader.readAsDataUrl(scope.file, scope).then(function(result) { imgView.attr("src",result); }); }); } } }]); angular.module('routerModule').factory('fileReader', ["$q", "$log", function($q, $log) { var onLoad = function(reader, deferred, scope) { return function() { scope.$apply(function() { deferred.resolve(reader.result); }); } } var onError = function(reader, deferred, scope) { return function() { scope.$apply(function() { deferred.reject(reader.result); }); }; }; var getReader = function(deferred, scope) { var reader = new FileReader(); reader.onload = onLoad(reader, deferred, scope); reader.onerror = onError(reader, deferred, scope); return reader; }; var readAsDataURL = function(file, scope) { var deferred = $q.defer(); var reader = getReader(deferred, scope); reader.readAsDataURL(file); return deferred.promise; } return { readAsDataUrl: readAsDataURL }; } ]);
html關(guān)鍵代碼
<section class="infogroup"> <h4>法人證件</h4> <div class="row relatedCard"> <div class="col-md-4 txtcenter"> <p>身份證正面</p> <div><img ng-src="showImg/{{dealer.idCardFace}}" class="idCardFace" enlarge-pic/></div> <span class="btn btn-file btn btn-xs btn-primary btn-editable picEdit"><i class="fa fa-edit"></i> 點擊編輯 <input type="file" file-model="idCardFace" img-view-id="idCardFace" /> </span> </div> <div class="col-md-4 txtcenter"> <p>身份證反面</p> <div><img ng-src="showImg/{{dealer.idCardBack}}" class="idCardBack" enlarge-pic/></div> <span class="btn btn-file btn btn-xs btn-primary btn-editable picEdit"><i class="fa fa-edit"></i> 點擊編輯 <input type="file" file-model="idCardBack" img-view-id="idCardBack" /> </span> </div> </div> </section>
controller.js中發(fā)送到后臺的數(shù)據(jù)
$scope.postData = { dealerId: $scope.dealer.dealerId, companyName: $scope.dealer.companyName, companySize: $scope.dealer.companySize, idCardFace: angular.element(document.querySelector(".idCardFace"))[0].src, idCardBack: angular.element(document.querySelector(".idCardBack"))[0].src }; $http.post('updateDealerCertificate',$scope.postData).success(function(data){ <!-- 成功執(zhí)行代碼 --> });
預覽如下:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Angular系列之變化檢測(Change Detection)
這篇文章主要介紹了詳解Angular系列之變化檢測(Change Detection),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02AngularJS整合Springmvc、Spring、Mybatis搭建開發(fā)環(huán)境
這篇文章主要介紹了AngularJS整合Springmvc、Spring、Mybatis搭建開發(fā)環(huán)境的相關(guān)資料,為學習使用AngularJS做好基礎(chǔ)準備,感興趣的小伙伴們可以參考一下2016-02-02