国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

AngularJS實現圖片上傳和預覽功能的方法分析

2019-11-19 14:57:52
字體:
來源:轉載
供稿:網友

本文實例講述了AngularJS實現圖片上傳和預覽功能的方法。分享給大家供大家參考,具體如下:

html5原生方法

先看一下html5原生方法上傳和預覽圖片的實現:

// <img id="img-preview">var imgPreview = document.getElementById("img-preview");// <input id="img-input" type="file">var imgInput= document.getElementById("img-input");imgInput.addEventListener("change", function(e){ var imgFile = e.target.files[0]; // 獲取上傳的圖片 var reader = new FileReader(); reader.readAsDataURL(imgFile ); // 將圖片轉成dataUri reader.onload = function(e) {  imgPreview.src = e.target.result; //更新圖片鏈接 }});

我們看到,需要用到onchange事件來獲得上傳的文件,當項目使用上angularjs時,很自然的,我們想到了ng-change指令,然而不幸的是,在angularjs中,<input type="file">不支持ng-model和ng-change指令(附錄1),這就使得文件上傳變得有些復雜了。

angularjs方法

這里使用開源的 angular-file-upload 模塊來實現,步驟如下:

1、安裝 angular-file-upload 模塊

bower install angular-file-upload --save

2、添加到應用依賴

var app = angular.module('my-app', [  'angularFileUpload']);

3、HTML代碼

<!--文件上傳指令--><input type="file" nv-file-select="" uploader="uploader" /><!--圖片預覽--><img id="img-preview" ng-src="{{iconUrl}}">

這里,nv-file-select=""表示使用angular-file-upload模塊的文件選擇方式上傳,參考官方例子

4、controller代碼

.controller('AppController', ['$scope', 'FileUploader', function($scope, FileUploader) {    var uploader = $scope.uploader = new FileUploader({      url: 'upload.php' //換成自己的上傳地址,本地演示不換也行    });    uploader.onAfterAddingFile = function(fileItem) {      var reader = new FileReader();      reader.addEventListener("load", function (e) {        //文件加載完之后,更新angular綁定        $scope.$apply(function(){          $scope.iconUrl = e.target.result;        });      }, false);      reader.readAsDataURL(fileItem._file);    };}]);

可以看到,我們通過onAfterAddingFile回調函數獲得所選的圖片文件,接下來把圖片文件轉成datauri,再更新<img>標簽的src屬性即可。

值得注意的是,我們把“更新<img>標簽的src屬性”這個任務放到了$scope.$apply方法中執行,這是因為在angular框架外部(如在瀏覽器DOM事件中, setTimeout, XHR 或者 第三方框架中)更新數據,angular是不會同步更新綁定的。這點可以參考angular $apply reference

更多關于AngularJS相關內容感興趣的讀者可查看本站專題:《AngularJS指令操作技巧總結》、《AngularJS入門與進階教程》及《AngularJS MVC架構總結

希望本文所述對大家AngularJS程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜都市| 棋牌| 临桂县| 隆昌县| 保康县| 水城县| 南昌市| 海安县| 亳州市| 临沭县| 壶关县| 昌平区| 瑞丽市| 涡阳县| 盐池县| 竹溪县| 九龙城区| 绥宁县| 特克斯县| 泰安市| 措美县| 巴里| 腾冲县| 瓦房店市| 吴川市| 页游| 宝清县| 阆中市| 泽库县| 丰台区| 陆良县| 澄迈县| 溧阳市| 原平市| 小金县| 和龙市| 太原市| 灌云县| 灌云县| 宝鸡市| 许昌县|