如何在ng-repeat中重置变量计数?

时间:2015-12-29 07:48:34

标签: angularjs

我使用ng-repeat在表格中创建行。我需要向他们添加变量self以获得运行总计。但是,一旦该变量大于25,我需要将其重置为0.这是我当前的代码:

<tr ng-repeat="payoutqueue in payoutqueues" ng-init="payoutqueue.totalValue = +payoutqueues[$index-1].totalValue + +payoutqueue.balance_plain">
    <td align="left">{{$index}}</div></td>
    <td align="right"><div>{{payoutqueue.address}}</div></td>
    <td align="right"><div>{{payoutqueue.balance}}</div></td>
</tr>

我想在<div>{{payoutqueue.balance}}</div>之后添加一个div:

<div>{{payoutqueue.balance}}</div><div ng-if="payoutqueue.totalValue > 25">END</div>

并且我只希望<div ng-if="payoutqueue.totalValue > 25">END</div>payoutqueue.totalValue大于25时显示。我使用ng-if使其工作,但是,一旦我显示<div ng-if="payoutqueue.totalValue > 25">END</div>我也需要重置payoutqueue.totalValue=0以便我可以再次开始添加循环。

我尝试在另一个答案的帮助下执行此操作:<div ng-if="payoutqueue.totalValue > 25">END{{payoutqueue.balance=0;""}}</div>但是这不起作用。

总而言之,我想在每次添加到自身的变量大于25之后添加<div>。在变量大于25之后,我需要将其重置为0并开始添加到它试。

如果我在PHP中这样做,我正在寻找的是:

<?php
$totalValue=0;
foreach($payoutqueues as $payoutqueue){
    $totalValue=$totalValue+payoutqueue['balance_plain'];
    echo $totalValue;
    if($totalValue > 25){
        $totalValue=0;
    }
}
?>

更新 所以我还没有真正找到适合我的解决方案,所以我决定在服务器端进行数学计算并在我的JSON文件中添加一个额外的元素。感谢所有试图提供帮助的人。

3 个答案:

答案 0 :(得分:1)

您好尝试使用以下代码

<tr ng-repeat="payoutqueue in payoutqueues" ng-init="checkTotalValue(payoutqueue)">
    <td align="left">{{$index}}</div></td>
    <td align="right"><div>{{payoutqueue.address}}</div></td>
    <td align="right">
        <div>{{payoutqueue.balance}}</div>
        <div ng-if="payoutqueue.totalValue > 25">
            END
        </div>
    </td>
</tr>

在控制器中:

$scope.totalValue = 0;
$scope.checkTotalValue = function(payoutqueue){
     $scope.totalValue = $scope.totalValue + payoutqueue.balance_plain;
     payoutqueue.totalValue = $scope.totalValue;
     if($scope.totalValue > 25)
     {
         $scope.totalValue = 0;
     }
}

这会奏效。 以下是相同的jsfiddle: Demo

答案 1 :(得分:0)

你也许可以做一些像黑客一样的事情:

<div ng-if="payoutqueue.totalValue > 25 && !(payoutqueue.balance = 0)">END</div>

但实际上你应该将逻辑移到控制器中,例如你可以用总数建立一个字典并通过$ index

访问它

答案 2 :(得分:0)

所以我还没有真正找到适合我的解决方案,所以我决定在服务器端进行数学运算并在我的JSON文件中添加一个额外的元素。感谢所有试图提供帮助的人。