无法使用Angular.js动态地验证输入字段的名称

时间:2016-08-25 06:58:51

标签: javascript angularjs validation

我需要一个帮助。实际上,我在尝试通过使用Angular.js动态获取字段名称来验证输入字段时收到以下错误。

  

错误:

TypeError: Cannot read property '$invalid' of undefined

我正在解释下面的代码。

<form name="billdata" id="billdata"  enctype="multipart/form-data" novalidate>
   <div ng-repeat="mul in mulImage">
      <input type="file" class="filestyle form-control" data-size="lg" name="upload_{{$index}}" id="bannerimage_{{$index}}"  ng-model="mul.image" ngf-pattern="'image/*'" accept="image/*" ngf-max-size="2MB" ngf-select="onFileSelect1($index);">
   </div>
<input type="button" class="btn btn-success" ng-click="saveResturantDetails(billdata);"  id="saveData" value="Save"   style="margin-right:20px;"/>   </div>
</form>

我在这里上传多张图片,当用户点击save按钮时,它应首先验证。我正在解释下面的控制器端代码。

$scope.saveResturantDetails=function(billdata){
    if(billdata.$valid){
     }else{
      if(angular.isDefined($scope.mulImage)){
                for(var i=0;i<$scope.mulImage.length;i++){
                        var name='upload_'+i;
              if(billdata.name.$invalid){
                   alert('Please add the valid image(i.e-.png or .jpeg)  of size upto 2 mb max in image field'+(i+1));
                            return false;
                        }
                }
            }
     }
}

实际上我收到了这个if(billdata.name.$invalid)中的错误实际上它不能采用正确的名称。如果我这样写'billdata.upload_0。$ invalid'它的工作正常。但在这里我需要动态附加名称。请帮我。

1 个答案:

答案 0 :(得分:0)

这会有效吗?

billdata[name].$invalid