使用Angular js中的ng-repeat计算值的总和

时间:2016-05-04 11:27:13

标签: angularjs

我是Angular js的新手。我只是尝试使用角度j来计算每行的值之和。在这里,我动态添加和删除行。 例如:让我们说第一行的值是30,现在我添加一行值30,然后总计应该显示为60这样。

1.        30
2.        30
3.        50
Total    120

HTML代码:

 <table id="t1" style="border:none;">
        <tr><th>Start</th><th>Stop</th><th>Downtime(In Min)</th><th>Reason</th></tr>
            <tr ng-repeat="item in invoice">
        <td><input  type="text" required ng-model="$invoice.start" name="r1[]"></td>
        <td><input  type="text" required ng-model="$invoice.stop"  name="r2[]" ng-blur="diff($invoice)"></td>
        <td><input type="text" name="r3[]"  ng-model="$invoice.diff"/></td>
        <td style="border:none;"><a href ng-click="remove(item)">X</a></td>
        </tr>
        <tr style="border:none;">
        <td style="border:none;"><a href ng-click="add()">+</a></td>
      </tr>
        </table>
<span class="labelCode">Total Downtime</span><input required type="text"  name="Tot_D" ng-value="d1()"/></span></br>

Angular JS:

     $scope.d1=function(){
                        var total = 0;
            for(var i = 0; i < $scope.invoice.length; i++){
                var product = $scope.invoice[i];
                total += parseInt(product.diff);
            }
            return total;

                       }
//Calculate the Difference between two times

     $scope.diff = function(item) {
        item.diff = computeDiff(item.start,item.stop);
      }

      function computeDiff(start, stop) {
        if (start && stop) {
          var s_hr = start.split(":")[0];
          var s_min = start.split(":")[1];
          var e_hr = stop.split(":")[0];
          var e_min = stop.split(":")[1];

          return Math.abs((parseInt(e_hr) - parseInt(s_hr)) * 60) + Math.abs(parseInt(e_min) - parseInt(s_min))
        }
      }

现在,它只是显示NaN。我不知道出了什么问题。 请帮忙。谢谢。

0 个答案:

没有答案