Проверка ng-file-upload (ngf-[max|min]-[height|width] или ngf-sizes) не появляется, чтобы вступить в силу

Некоторые директивы ng-file-upload явно работают здесь: я вижу предварительный просмотр изображения, и выгрузка работает хорошо. Я сейчас пытаюсь проверить разрешение изображения. При осмотре элемента я вижу следующее:

<input type="file" ngf-dimensions="$width == 114 && $height == 114" ng-select="onFileSelect($files)" accept="image/png" base-sixty-four-input="" ng-model="fileDesc.file" name="filename_png" id="filename_png" class="ng-untouched ng-valid ng-isolate-scope ng-valid-parse ng-dirty">

Я вижу, что ngf-dimensions атрибут заполняется правильно, и, кроме того, ng-dirty устанавливается, потому что я попытался загрузить файл в этот момент. Но размеры файла не 114х114. Я не должен видеть ng-invalid вместо ng-valid?

Я также попробовал эту более длинную формулировку, которая, я считаю, эквивалентна, с тем же эффектом:

<input type="file" ngf-min-width="114" ngf-min-width="114" ngf-min-height="114" ngf-max-height="114" ... >

Есть ли что-то конкретное, что нужно сделать, чтобы включить проверку полей формы и возможность проверки form.field.$error?

Обновлено, чтобы добавить версию ng-file-upload: 11.2.0

Отредактировано снова, чтобы добавить вывод Test: {{form.field}}, должен $validators быть заселенным? Или, может быть, у меня возник конфликт из-за использования директивы загрузки base64?

Test: {"$viewValue":{"filetype":"image/png","filename":"PNG successful.png","filesize":383443,"base64":"..."},"$validators":{},"$asyncValidators":{},"$parsers":[null,null,null,null],"$formatters":[],"$viewChangeListeners":[],"$untouched":true,"$touched":false,"$pristine":false,"$dirty":true,"$valid":true,"$invalid":false,"$error":{},"$name":"filename_png","$options":null}

2 ответа

Я должен был предоставить jsfiddle в первую очередь. Просто пытался сгенерировать один, чтобы воспроизвести мою проблему, и это заставило меня понять, что мой код потерял инъекцию ngFileUpload в модуле. Не удивительно, что это не сработало. Спасибо, @danial, за хорошую работу.

Я не знаком с библиотекой, но, похоже, справочные документы говорят:

 ngf-dimensions="$width > 1000 || $height > 1000" or "validateDimension($file, $width, $height)"
 // validate the image dimensions, validate error name: dimensions

Если я посмотрю на пример проверки автора ниже, он, кажется, использует required атрибут, который может быть вашей единственной проблемой, но я бы также проверить form.file.$error.dimensions чтобы увидеть, обнаружена ли ошибка вообще:

<input type="file" ngf-select ng-model="picFile" name="file" accept="image/*" ngf-max-size="2MB" required ngf-model-invalid="errorFiles">
Другие вопросы по тегам