2017-06-15 81 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