Angularjs 中动态字段的总和

Sum of Dynamic fields in Anglurjs

嗨,我有一个这样的动态字段

<tr ng-repeat="category in staff_categories">
   <td>{{ category.name }}</td>
   <td><input type="text" ng-model="category.permanent"></td>
   <td><input type="text" ng-model="category.temp"></td>
</tr>

它按预期工作正常。它根据 staff_categories 进行迭代。 现在我想要用户输入的 category.permanent 和 category.temp 值的总计并将其放入文本框中。 请帮忙

Total permanent:<input type="text">
Total Temp:<input type="text">

在控制器中创建一个将被调用的函数,并更新包含这些值的总和的范围变量。

<tr ng-repeat="category in staff_categories">
   <td>{{ category.name }}</td>
   <td><input type="text" ng-model="category.permanent" ng-change="updatePermanentTotal()"></td>
   <td><input type="text" ng-model="category.temp" ng-change="updateTemp()"></td>
</tr>

控制器代码

$scope.permanentTotal = 0.0;
$scope.tempTotal = 0.0;

$scope.updatePermanentTotal = function(){
  $scope.permanentTotal = 0.0;

  angular.forEach($scope.staff_categories, function(value, key){
    if(!isNaN(parseInt(value.temp)){
       $scope.tempTotal = $scope.tempTotal + parseInt(value.temp);
      }
    })
}

$scope.updateTemp = function(){
      $scope.tempTotal = 0.0;

      angular.forEach($scope.staff_categories, function(value, key){
        $scope.tempTotal = $scope.tempTotal + parseInt(value.temp);
       })
    }

然后像这样将这两个总变量绑定到两个输入。

Total permanent:<input type="text" ng-model="permanentTotal">
Total Temp:<input type="text" ng-model="tempTotal">

您可以使用一个函数并将参数传递给它。

显示总数

<p> Permanent Total: {{ getTotal(permanent) }}</p>
<p> Temp Total: {{ getTotal(temp) }}</p>

在控制器中

$scope.getTotal = function(category){
   var total = 0;
   if(category == 'permanent'){
      angular.forEach(staff_categories, function(item){
         total = total + parseInt(item.temp);
      });
   } else {
      angular.forEach(staff_categories, function(item){
         total = total + parseInt(item.permanent);
      });
   }
   return total;
}