【发布时间】:2016-01-20 21:52:33
【问题描述】:
一些 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 上传指令可能会遇到一些冲突?
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}
【问题讨论】:
-
'ng-file-select' 适用于旧版本的插件。使用“ngf-select”,按照示例进行操作。
-
谢谢,@danial,我没有看到这种变化。但是我已经进行了更正,验证仍然没有生效。我也尝试添加
ngf-max-size="100KB",但即使我尝试上传分辨率错误且大于最大大小的文件,该元素仍设置为ng-valid。 -
然后创建一个 jsfiddle,你可能遗漏了一些非常简单的东西。
-
您可以使用文档中的 jsfiddle 示例进行参考和比较。
标签: javascript angularjs ng-file-upload