0

我正在使用 ng-file-upload 和 ngImgCropExtended。

一切都很好,我唯一的问题是,当验证失败时,它会静默失败,没有通知用户。

我将 ngf-validate-fn="validate($file)" 添加到我的上传按钮,可以看到错误,但无法访问或检查错误。

我的html:

 <button 
         id ="bannerUpload" 
          ngf-validate-fn="validate($file)" 
          ngf-accept="'image/*'" 
          ngf-min-width = "1600" 
          ngf-max-size = "1.3MB" 
          ngf-pattern="'.png, .jpg, .JPEG, .jpeg'" 
          ngf-select="handleFileSelect($file)" 
          ngf-drop = "handleFileSelect($file)" 
          ng-model="picFile" accept="image/*"></button>

控制器:

.controller('galleryController', ['$scope', '$attrs', '$http', 'Upload', '$timeout', function ($scope, $attrs, $http, Upload, $timeout) {     

    $scope.validate = function($file ){
          console.log($file);
          console.log( $file.constructor );
    }

文件使用 $error 对象记录,但我似乎无法访问它。我可以访问文件对象的其他属性,例如名称。

如果我记录构造函数,它会给我

function File() { [native code] }

如果我记录它给我的 File 对象(例如)

File{}
   $error: "minWidth"
   $errorMessages: Object
   $errorParam: 1600
   $ngfBlobUrl:  'theUrlOfTheImage'
   $ngfHeight: 274
   $ngfWidth: 316
   lastModified: 145437567099
   name: nameOfMyImage.jpg

我可以使用 $file.name 访问普通属性,例如名称。$file.$error 返回未定义。$file.$error() 什么都不返回,没有错误没有日志。正如文档所说,还尝试了 $file.validate.$error

ngf-validate-fn="validate($file)" // 自定义验证函数,返回包含错误的布尔值或字符串。// 验证错误名称:validateFn

最后尝试了 JSON.stringify( $file ) 但这会返回一个空对象 {}

4

0 回答 0