私はこのディレクティブでは、スコープにファイルをバインドするカスタムディレクティブを持って無効にangularjsは
<div class="form-group">
<input type="file" id="files" file-upload="myFile" ng-disabled="isBig" class="form-control" name="files" />
<output id="list"></output>
</div>
<button type="submit" ng-disabled="isBig" class="btn btn-danger btn-block" ng-click="createUser()">Submit</button>
フォームは、私がイメージオブジェクトを作成し、オンロードの方法を持っている送信ボタンを形成しますファイルサイズを確認してください。ファイルサイズが指定した制限を超えている場合は、ファイルの選択を解除し、フォーム送信ボタンを無効にして、小さいサイズの画像を選択するよう警告します。私は大きさが大きければ、onloadメソッドのスコーププロパティをtrueに設定しようとしましたが、それは動作しません。
app.directive('fileUpload', ['$parse',
function($parse) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
var model = $parse(attrs.fileUpload);
var modelSetter = model.assign;
element.bind('change', function() {
scope.$apply(function() {
if (element[0].files.length > 1) {
modelSetter(scope, element[0].files);
} else {
modelSetter(scope, element[0].files[0]);
var file = element[0].files[0];
if (file) {
var img = new Image();
img.src = window.URL.createObjectURL(file);
img.onload = function() {
var width = img.naturalWidth,
height = img.naturalHeight;
window.URL.revokeObjectURL(img.src);
var isBig = false;
if (width <= 200 && height <= 200) {
modelSetter(scope, isBig);
} else {
isBig = true;
modelSetter(scope, isBig);
}
};
}
}
});
});
}
};
}
]);
私が間違っている箇所についての説明はありません。
私はNGクリックNG-提出するように変更。便利な場合は、コールバックの中に別の適用ラップがあるということを私に見せてもらえますか?したがって、isBigのようなフォームフィールドで使用できるスコープにいくつかのプロパティを追加したい場合は、これを行う方法ですか? – phantomsays