Javascript AngularJS-为什么范围表单验证中不包括

Javascript AngularJS-为什么范围表单验证中不包括,javascript,angularjs,forms,validation,Javascript,Angularjs,Forms,Validation,我不确定这个问题是否已经得到了回答,因为我在其他帖子中确实找不到答案 我有一个文件名数组,比如[flower.jpg,rose.jpg],我想根据input type=file表单中选择的文件验证它。此验证检测到重复项,然后我想设置错误有效性,如$scope.detailsForm.files.$setValidityduplicate,true 问题是$scope.detailsForm.files未定义,但其他输入类型(如输入类型=文本名称=用户名)的情况并非如此 我在使用AngularJS

我不确定这个问题是否已经得到了回答,因为我在其他帖子中确实找不到答案

我有一个文件名数组,比如[flower.jpg,rose.jpg],我想根据input type=file表单中选择的文件验证它。此验证检测到重复项,然后我想设置错误有效性,如$scope.detailsForm.files.$setValidityduplicate,true

问题是$scope.detailsForm.files未定义,但其他输入类型(如输入类型=文本名称=用户名)的情况并非如此

我在使用AngularJS Batarang时注意到,detailsForm的作用域包含除我的输入类型=文件之外的所有输入的名称属性

另外,奇怪的是,将ng model='anythingHere'添加到我的input type=文件中会使name属性存在于detailsForm范围中,从而获得我想要的结果

然而,它确实让我感到困扰,因为我真的不想添加ng模型指令,因为我已经在为此使用angular文件上传

下面是一段代码:

控制器:

if (imageArr.indexOf(uploadFilename) != -1) {
   $scope.detailsForm.files.$setValidity("duplicate", true);
   return;
}
else {
   $scope.detailsForm.files.$setValidity("duplicate", false);
}
HTML:

希望你能理解我的问题和处境


PS:这实际上是我第一次在stackOverFlow上发帖,因为这里的帖子总是回答我的问题。这次我真的需要帮助!大师,我需要楚

感谢cbass,我刚刚开始学习如何格式化帖子:DIt根本没有在AngularJS中实现。这里有一些解决办法:这就是为什么hehe非常感谢你Sergiu
input  type="file" name="files" ng-file-select="onFileSelect($files)