Angularjs ng-repeat对字段求和

时间:2016-06-12 04:25:49

标签: angularjs angularjs-ng-repeat

您好我是angularjs的新手我在计算中遇到问题我的代码就是这样的字段总和

<div ng-repeat="(key,item) in expenses_data | groupBy: 'category_name'">

  <h4 ng-cloak><i class="fa fa-plus-circle"></i> {{ key }}</h4>

  <div class="form-group" ng-repeat="expn_head in item">
    <label class="col-sm-3 control-label">{{ expn_head.name }}</label>
    <div class="col-sm-2">
      <input type="text" class="form-control input-sm" ng-model="expenses.expenditure_head[expn_head.id]">
    </div>
  </div>

</div>

如何汇总输入的所有expenses.expenditure_head值并将其放入新文本字段中。有没有这样的功能:

<input type=text ng-value="{{ sum() }}">

和js

$scope.sum = function() {

  var total = 0;

  for (var i = 0; i < $scope.expenses.expenditure_head; i++) {
    var myValue = $expenses.expenditure_head[i];
    total += myValue;
  }
  return total;
}

JSON

    [
{
"id":23,
"name":"Agency Commission",
"expenditure_category_id":1,
"category_name":"Main"
},
{
"id":22,
"name":"Bonus to Local Staff",
"expenditure_category_id":1,
"category_name":"Main"
},
{
"id":48,
"name":"Advance for Expenses",
"expenditure_category_id":2,
"category_name":"Other Dept's Budget Exp"
},
{
"id":49,
"name":"Agency TDS",
"expenditure_category_id":2,
"category_name":"Other Dept's Budget Exp"
}

有人能告诉我正确的方向吗?我已经尝试了一天。

1 个答案:

答案 0 :(得分:1)

正确的方法是在控制器内部这样做。创建一个函数调用它getSum()

    $scope.getSum = function(){
      var total = 0;
      for(var i = 0; i < $scope.someVar; i++){
        var myValue = $someVar[i];
        sum += myValue;
      }
      return sum;
    };

然后在代码中执行类似

的操作
 <td>Total: {{ getSum() }}</td>