我使用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文件中添加一个额外的元素。感谢所有试图提供帮助的人。
答案 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文件中添加一个额外的元素。感谢所有试图提供帮助的人。