Angular JS ng文件上传

时间:2016-04-26 18:45:04

标签: javascript angularjs forms validation ng-file-upload

我正在使用Angular的JS着名的ng文件上传指令(https://github.com/danialfarid/ng-file-upload),但我遇到了有关验证的问题。我添加了ngf-pattern指令,以防止用户上传某些文件格式。这很有效,每个无效文件都可以在$ invalidFiles数组中使用。反正有没有清除这个阵列?

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

希望我很清楚..谢谢!

2 个答案:

答案 0 :(得分:1)

这就是您所需要的:JsFiddle

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

答案 1 :(得分:0)

你真正需要的是ngf-change,而不是ngf-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

部分的官方文件