Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ng重复循环中添加以获得总计(AngularJS)_Angularjs_Foreach_Ng Repeat - Fatal编程技术网

在ng重复循环中添加以获得总计(AngularJS)

在ng重复循环中添加以获得总计(AngularJS),angularjs,foreach,ng-repeat,Angularjs,Foreach,Ng Repeat,我有一个表格,显示员工工作的小时数。数据位于$scope.dailytimes中。每一行都有一个名为time的列,显示一天工作的小时数。我需要一种方法来循环遍历每一行并将时间加在一起。因此,如果有4行结果,员工每天工作3小时,我的总数将是4。每天工作的时间不一样,所以我不能成倍增加 我已经开始这样做了,但它不起作用 $http({ url: '/SharedData/DailyTime', method: 'POST' }).success(functi

我有一个表格,显示员工工作的小时数。数据位于$scope.dailytimes中。每一行都有一个名为time的列,显示一天工作的小时数。我需要一种方法来循环遍历每一行并将时间加在一起。因此,如果有4行结果,员工每天工作3小时,我的总数将是4。每天工作的时间不一样,所以我不能成倍增加

我已经开始这样做了,但它不起作用

 $http({
        url: '/SharedData/DailyTime',
        method: 'POST'
    }).success(function (data) {
        $scope.dailytimes = data
        $scope.total = function () {
            var total = 0
            angular.forEach($scope.dailytimes, function(dailytime){ 
                total += total + dailytime.time
            })
            return total;
        }
    })
以下是我的建议,请重复:

 <tr ng-repeat="dailytime in dailytimes" style="line-height:18px;">
    <td width="50" style="font-weight:bold;">
       <div ng-if="dailytime.ClockType == 0">Vacation</div>
       <div ng-if="dailytime.ClockType == 1">PTO</div>
       <div ng-if="dailytime.ClockType != 0 || dailytime.ClockType != 1">Clocked</div>
    </td>
    <td width="70" align="right" style="font-size:12px;"> {{dailytime.ClockIn}}</td>
    <td width="70" align="right" style="font-size:12px;">{{dailytime.ClockOut}}</td>
    <td width="40" align="right">{{dailytime.time}}</td>
 </tr>
 <tr style="line-height:18px;">
    <td style="font-weight:bold;">Total</td>
    <td colspan="3" align="right" style="font-weight:bold;">NEED A TOTAL HERE</td>
 </tr> 
有什么办法吗

你可以这样做

在作用域上定义totaltime变量

  $scope.totaltime=0;
  $scope.updateTotal = function(t){
    $scope.totaltime =  $scope.totaltime +t;
return t;
  }
现在重复一遍

 <td width="40" align="right">{{updateTotal(dailytime.time)}}</td>

您可以在控制器或其他地方访问total函数,并使用如下所示的函数

<td colspan="3" align="right" style="font-weight:bold;">{{total() }}</td>

那似乎不起作用。这只是写出了{$scope.totaltime+=dailytime.time}并中断了。它没有显示任何数字。我也不确定这是否有效,因为我需要添加多个dailytime.time日志。在这一点上,在我的代码中,我不在我的循环中,我明白了。谢谢谢谢你的回答@JayI只是想强调一下,total+=total+dailytime.time应该改为total+=dailytime.time,这样做是有意义的。