一些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
正在设置,因为我此时已尝试上传文件。但文件的尺寸不是114x114。我不应该看到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 upload指令时会遇到一些冲突?
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}
答案 0 :(得分:1)
我不熟悉这个库,但看起来它的参考文档说:
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">
答案 1 :(得分:1)
我应该首先提供一个jsfiddle。只是试图生成一个来重现我的问题,它迫使我意识到我的代码丢失了模块上的ngFileUpload注入。难怪它不起作用。谢谢@danial,感谢您的出色工作。