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)" // カスタム検証関数、ブール値またはエラーを含む文字列を返します。// エラー名の検証: validateFn
最後に JSON.stringify( $file ) を試しましたが、これは空のオブジェクトを返します {}