Angular 文件上传JS

Angular JS ng file upload

我在我正在处理的项目中使用 Angular 的 JS 众所周知的 ng 文件上传指令 (https://github.com/danialfarid/ng-file-upload),但我遇到了验证方面的问题。我添加了 ngf-pattern 指令,以防止用户上传某些文件格式。这很好用,每个无效文件都在 $invalidFiles 数组中可用。无论如何要清除这个数组?

我正在使用 $invalidFiles 数组来检测何时使用了无效文件,并提醒用户。该文件没有显示在 UI 中,也没有添加到我的模型中,但我仍然无法提交表单,因为表单无效。只有在添加有效文件后,我才能提交表单。有没有办法检测无效文件但仍然能够提交表单?

希望我说清楚了..谢谢!

这是您需要的吗:JsFiddle

$scope.submit = function() {
    alert('form is ready');
   }

可能您真正需要的是 ngf-change 而不是 ngf-select。根据文档,只要您 select、删除或清除,您分配给 ngf-change 指令的处理函数就会被调用。

如果您唯一想要实现的是允许表单提交,无论它是有效还是无效,可以在 ng-model-options 上使用另一种方法。有一个名为 allowInvalid 的选项,默认情况下它是 false,将其设置为 true 即可。

所以在你的例子中:

<button name="bla" multiple accept="image/*"              
        ngf-keep="true" 
        ng-model="myFiles" 
        ngf-pattern="'image/*'" 
        ngf-max-size="1MB"
        ngf-change="handleFiles($files, $invalidFiles)"
        ngf-model-options="{allowInvalid: true}">
  Select Files
</button>

请注意我们在此处更改的最后两个指令。

如需完整参考,您可以查看Full reference - File select and drop

部分的官方文档