Javascript 角度JS ng文件上传

Javascript 角度JS ng文件上传,javascript,angularjs,forms,validation,ng-file-upload,Javascript,Angularjs,Forms,Validation,Ng File Upload,我在一个项目中使用Angular的JS著名的ng file upload指令(),但我在验证方面遇到了问题。我添加了ngf模式指令,以防止用户上传某些文件格式。这很好,每个无效文件都在$invalidFiles数组中可用。是否仍要清除此阵列 我使用$invalidFiles数组来检测何时使用了无效文件,并提醒用户。该文件不会显示在UI中,也不会添加到我的模型中,但我仍然无法提交表单,因为表单无效。只有在我添加了有效文件后,我才能提交表单。是否有办法检测无效文件,但仍能提交表单 希望我是清楚的。。

我在一个项目中使用Angular的JS著名的ng file upload指令(),但我在验证方面遇到了问题。我添加了ngf模式指令,以防止用户上传某些文件格式。这很好,每个无效文件都在$invalidFiles数组中可用。是否仍要清除此阵列

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

希望我是清楚的。。谢谢

这就是您需要的:


可能您真正需要的是
ngf更改
,而不是
ngf选择
。根据文档,无论何时选择、删除或清除,都会调用分配给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>

选择文件
注意我们在这里更改的最后两个指令


为了充分参考,您可以查看

部分的官方文件。我们可以为您的场景拿一把小提琴吗?可以!你可以在这里找到它:。如果添加无效文件,则不会将其添加到模型中,它将添加到错误文件数组中,并且在添加有效文件之前,表单将无效。我只是希望能够捕获错误,但仍然提交表单(如果在添加一些有效文件之前)。希望有帮助。@tsahnar如果你想提交一份无效的表单,那么知道表单是否有效又有什么意义呢?@Akis_Tfs你是否为你的评论选择了合适的用户?@Sampath我真的很抱歉,错了标记现在你删除了检查表单是否有效的条件。,所以它忽略了整个要点,您仍然可以捕获错误,也可以提交表单吗?如果不是,你需要什么?@tsahnar不用担心,如果它对你有用,请随意投票。
<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>