2016-09-19 3 views
0

У меня есть куча переменных, которые я бы хотел проверить > 0 в js.Проверяйте сразу несколько переменных для одного и того же значения и записывайте условные значения - jQuery

Вот мои переменные (в угловых):

 $scope.total_lbs_urea = ($scope.lbs_needed/$scope.urea_n).toFixed(2); 
     $scope.total_lbs_ammonium = ($scope.lbs_needed/$scope.ammonium_n).toFixed(2); 
     $scope.total_lbs_calcium = ($scope.lbs_needed/$scope.calcium_n).toFixed(2); 
     $scope.total_lbs_un32 = ($scope.lbs_needed/$scope.un32_n).toFixed(2); 
     $scope.total_lbs_can17 = ($scope.lbs_needed/$scope.can17_n).toFixed(2); 
     $scope.total_lbs_aqua = ($scope.lbs_needed/$scope.aqua_n).toFixed(2); 

     // weight/gallons variables for gallons of product needed 
     $scope.total_gal_urea = ($scope.total_lbs_urea/$scope.urea_g).toFixed(2); 
     $scope.total_gal_ammonium = ($scope.total_lbs_ammonium/$scope.ammonium_g).toFixed(2); 
     $scope.total_gal_calcium = ($scope.total_lbs_calcium/$scope.calcium_g).toFixed(2); 
     $scope.total_gal_un32 = ($scope.total_lbs_un32/$scope.un32_g).toFixed(2); 
     $scope.total_gal_can17 = ($scope.total_lbs_can17/$scope.can17_g).toFixed(2); 
     $scope.total_gal_aqua = ($scope.total_lbs_aqua/$scope.aqua_g).toFixed(2); 

     // phosophorus variables to get phosphorus needed 
     $scope.total_p_urea = ($scope.lbs_needed * $scope.urea_p).toFixed(2); 
     $scope.total_p_ammonium = ($scope.lbs_needed * $scope.ammonium_p).toFixed(2); 
     $scope.total_p_calcium = ($scope.lbs_needed * $scope.calcium_p).toFixed(2); 
     $scope.total_p_un32 = ($scope.lbs_needed * $scope.un32_p).toFixed(2); 
     $scope.total_p_can17 = ($scope.lbs_needed * $scope.can17_p).toFixed(2); 
     $scope.total_p_aqua = ($scope.lbs_needed * $scope.aqua_p).toFixed(2);    

     // potassium(k) variables to get potassium(k) needed 
     $scope.total_k_urea = ($scope.lbs_needed * $scope.urea_k).toFixed(2); 
     $scope.total_k_ammonium = ($scope.lbs_needed * $scope.ammonium_k).toFixed(2); 
     $scope.total_k_calcium = ($scope.lbs_needed * $scope.calcium_k).toFixed(2); 
     $scope.total_k_un32 = ($scope.lbs_needed * $scope.un32_k).toFixed(2); 
     $scope.total_k_can17 = ($scope.lbs_needed * $scope.can17_k).toFixed(2); 
     $scope.total_k_aqua = ($scope.lbs_needed * $scope.aqua_k).toFixed(2); 

     // sulfur variables to get potassium(k) needed 
     $scope.total_s_urea = ($scope.lbs_needed * $scope.urea_s).toFixed(2); 
     $scope.total_s_ammonium = ($scope.lbs_needed * $scope.ammonium_s).toFixed(2); 
     $scope.total_s_calcium = ($scope.lbs_needed * $scope.calcium_s).toFixed(2); 
     $scope.total_s_un32 = ($scope.lbs_needed * $scope.un32_s).toFixed(2); 
     $scope.total_s_can17 = ($scope.lbs_needed * $scope.can17_s).toFixed(2); 
     $scope.total_s_aqua = ($scope.lbs_needed * $scope.aqua_s).toFixed(2); 

     // calcium variables to get potassium(k) needed 
     $scope.total_c_urea = ($scope.lbs_needed * $scope.urea_c).toFixed(2); 
     $scope.total_c_ammonium = ($scope.lbs_needed * $scope.ammonium_c).toFixed(2); 
     $scope.total_c_calcium = ($scope.lbs_needed * $scope.calcium_c).toFixed(2); 
     $scope.total_c_un32 = ($scope.lbs_needed * $scope.un32_c).toFixed(2); 
     $scope.total_c_can17 = ($scope.lbs_needed * $scope.can17_c).toFixed(2); 
     $scope.total_c_aqua = ($scope.lbs_needed * $scope.aqua_c).toFixed(2); 

Я хочу сделать что-то вроде этого:

 if ($scope.[VARIABLE FOR EACH HERE] > 0) { 
      $scope.isActive = true; 
     } else { 
      $scope.isActive = false; 
     } 

Любая идея, как это сделать?

РЕШЕНИЕ:

Законченное только с помощью JQuery ...

 $("tr").each(function() { 
      var number = parseInt($(this).find('td').text(), 10); 
      if (number > 0) { 
       $(this).find('td').addClass("table-background"); 
      } else { 
       $(this).find('td').removeClass("table-background"); 
      } 
     }); 

ответ

1

Я бы сохранить все эти переменные внутри объекта в сферу, как так:

$scope.variables = { 
    total_lbs_urea: ($scope.lbs_needed/$scope.urea_n).toFixed(2), 
    $scope.total_lbs_ammonium: ($scope.lbs_needed /$scope.ammonium_n).toFixed(2), 
    $scope.total_lbs_calcium: ($scope.lbs_needed/$scope.calcium_n).toFixed(2) 
    ...etc 
}; 

А затем петли через них:

$scope.isActive = false; //start with false 
for(var prop in $scope.variables){ 
    if($scope.variables.hasOwnProperty(prop)){ 
     if($scope.variables[prop] > 0){ 
      $scope.isActive = true; 
      break; //add this if you want to stop looping at the first variable that is > 0 
     } 
    } 
} 
//if nothing is > 0, $scope.isActive will have remained false at this point 
+0

столкнулся с некоторыми ошибками, используемыми некоторыми jquery вместо, похоже, работает нормально. благодаря – frshjb373

1

Не уверен, что я полностью понимаю ваш вопрос, но вы можете использовать массив имен элементов и итерации с использованием метода .some().

['item1', 'item2', 'item3'].some(function(item) { 
    $scope.isActive = ($scope[item] > 0); 
    return $scope.isActive; 
}); 
Смежные вопросы