2017-06-15 108 views
1
$scope.forms = [ 
     {id: 1, text: 'h_form'}, 
     {id: 2, text: 'S_form'}, 
     {id: 3, text: 'l_form'}, 
     {id: 4, text: 'g_form'}, 
     {id: 5, text: 'f_form'}, 
     {id: 7, text: 'b_form'}, 
     {id: 8, text: 's_form'} 
     ]; 

我实现了与这些代码一些验证,但多数民众赞成weired多次调用,这不是正确的处理数据

if($scope.form.userInfo.h_form != undefined){ 
     if($scope.form.userInfo.h_form.$invalid){ 
     if(setPlayerProfileId == ''){ 
      setPlayerProfileId = 'sportdetailform'; 
     } 
     } 
     } 

     if($scope.form.userInfo.g_form != undefined){ 
     if($scope.form.userInfo.g_form.$invalid){ 
     if(setPlayerProfileId == ''){ 
      setPlayerProfileId = 'sportdetailform'; 
     } 
     } 
     } 

     if($scope.form.userInfo.f_form != undefined){ 
     if($scope.form.userInfo.f_form.$invalid){ 
     if(setPlayerProfileId == ''){ 
      setPlayerProfileId = 'sportdetailform'; 
     } 
     } 
     } 

我通常不希望运行该代码多时间,所以我用过的foreach功能,但并没有为我工作,请建议如何定出来的

angular.forEach($scope.forms, function(value, key){ 
      var check = value.text; 
      if($scope.form.userInfo.check != undefined){ 
       if($scope.form.userInfo.check.$invalid){ 
       if(setPlayerProfileId == ''){ 
       setPlayerProfileId = 'sportdetailform'; 
       } 
       } 
      } 

     }) 

回答

1

更改您的forEach以下列方式:

angular.forEach($scope.forms, function(value, key){ 
     if($scope.form.userInfo[value.text] != undefined){ 
      if($scope.form.userInfo[value.text].$invalid){ 
      if(setPlayerProfileId == ''){ 
      setPlayerProfileId = 'sportdetailform'; 
      } 
      } 
     } 

    }); 
+0

感谢Vivz为此。 – Amy

+0

很高兴能有帮助:) – Vivz