0

ngImgCropExtended で ng-file-upload を使用しています。

すべてがうまく機能します。私が抱えている唯一の問題は、検証が失敗すると、ユーザーに通知せずにサイレントに失敗することです。

アップロード ボタンに 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 で name などの通常のプロパティにアクセスできます。$file.$error は undefined を返します。$file.$error() は何も返しません。エラーもログもありません。ドキュメントにあるように $file.validate.$error も試しました

ngf-validate-fn="validate($file)" // カスタム検証関数、ブール値またはエラーを含む文字列を返します。// エラー名の検証: v​​alidateFn

最後に JSON.stringify( $file ) を試しましたが、これは空のオブジェクトを返します {}

4

0 に答える 0