当前位置 : 主页 > 网络编程 > JavaScript >

angluar js 图片浏览

来源:互联网 收集:自由互联 发布时间:2021-06-28
gistfile1.txt //在模块下面添加服务 .directive('fileModel', ['$parse', 'fileReader', function ($parse, fileReader) { return { restrict: 'EAC', link: function (scope, element, attrs, ngModel) { var model = $parse(attrs.fileModel); va
gistfile1.txt
//在模块下面添加服务
   .directive('fileModel', ['$parse', 'fileReader', function ($parse, fileReader) {
        return {
            restrict: 'EAC',
            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) {
                	console.info(imgviewID);
                    $('.update-store-form .upload-msg').html("");
                    //获取图片大小
                    var boole = (this.files[0].size / 1000) > 1024;
                    if (boole) {
                        var target = $('.update-store-form .upload-msg').attr("style", "visibility:visible");
                        showTip("图片大于1M");
                        return false;
                    }
                    //获取图片的类型
                    var file = $("#upload-file").val();
                    var sub = file.substr(file.indexOf("."));
                    if (!/.(gif|jpg|jpeg|png|gif|jpg|png)$/.test(sub)) {
                        var target = $('.update-store-form .upload-msg').attr("style", "visibility:visible");
                        showTip("图片类型不正确");
                        return false;
                    }
                    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);
                    });
                });
            }
        }
    }])
    .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下的 图片标签 ///////////////////////////////

       
 
            
  
            
  
        
 
        
 
            
  

仅支持JPG图片,且文件小于1M,尺寸

为200*200像素,请确认是否清晰。

网友评论