angularjs實(shí)現(xiàn)多張圖片上傳并預(yù)覽功能
本文實(shí)例為大家分享了angularjs上傳多張圖片并預(yù)覽的具體代碼,供大家參考,具體內(nèi)容如下
directive.js
/* * 多圖片上傳及預(yù)覽指令(需指定圖片類名) * */ 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]); }); //附件預(yù)覽 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> 點(diǎn)擊編輯 <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> 點(diǎn)擊編輯 <input type="file" file-model="idCardBack" img-view-id="idCardBack" /> </span> </div> </div> </section>
controller.js中發(fā)送到后臺(tái)的數(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í)行代碼 --> });
預(yù)覽如下:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Javascript圖片上傳前的本地預(yù)覽實(shí)例
- js圖片上傳前預(yù)覽功能(兼容所有瀏覽器)
- 圖片上傳之前檢查大小、尺寸、格式并預(yù)覽的js代碼
- js實(shí)現(xiàn)圖片上傳預(yù)覽原理分析
- Vue.js 2.0 移動(dòng)端拍照壓縮圖片上傳預(yù)覽功能
- js前端實(shí)現(xiàn)多圖圖片上傳預(yù)覽的兩個(gè)方法(推薦)
- 兼容IE和FF的圖片上傳前預(yù)覽js代碼
- javascript 圖片上傳預(yù)覽-兼容標(biāo)準(zhǔn)
- js實(shí)現(xiàn)前端圖片上傳即時(shí)預(yù)覽功能
- js實(shí)現(xiàn)圖片上傳并預(yù)覽功能
相關(guān)文章
AngularJS實(shí)現(xiàn)表單驗(yàn)證功能詳解
這篇文章主要為大家詳細(xì)介紹了AngularJS實(shí)現(xiàn)表單驗(yàn)證功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10詳解Angular系列之變化檢測(cè)(Change Detection)
這篇文章主要介紹了詳解Angular系列之變化檢測(cè)(Change Detection),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02AngularJS學(xué)習(xí)第二篇 AngularJS依賴注入
這篇文章主要為大家詳細(xì)介紹了AngularJS學(xué)習(xí)第二篇,理解什么是AngularJS依賴注入,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02Angular.JS去掉訪問(wèn)路徑URL中的#號(hào)詳解
最近天天都在用AngularJS,各類文檔也都看過(guò)好幾遍,但總是些編程上的事找不到優(yōu)雅的解決辦法。今天終于把AngularJS的項(xiàng)目訪問(wèn)路徑URL里的#號(hào)去掉了,這個(gè)問(wèn)題不見(jiàn)得有多難,關(guān)鍵是花多長(zhǎng)時(shí)間去理解AngularJS框架本身,下面來(lái)看看詳細(xì)介紹,需要的朋友可以參考下。2017-03-03AngularJS整合Springmvc、Spring、Mybatis搭建開(kāi)發(fā)環(huán)境
這篇文章主要介紹了AngularJS整合Springmvc、Spring、Mybatis搭建開(kāi)發(fā)環(huán)境的相關(guān)資料,為學(xué)習(xí)使用AngularJS做好基礎(chǔ)準(zhǔn)備,感興趣的小伙伴們可以參考一下2016-02-02