你好我使用angularjs所以我有一个branch->client->invoice->details_invoice
的数组,现在发票有每个发票的总额,我为每个客户的总和发票的功能。
var TotalInvoice=0;
$scope.getSubTotal=function(indexClient,indexBranch){
var ret="0";
if($scope.data!=null){
var invoice=$scope.data[0].branch[indexBranch].client[indexClient].invoice;
if(invoice!=null){
for(var $i=0;$i<invoice.length;$i++){
if(invoice[$i].state=="3"){
ret=boletas[$i].amount;
TotalInvoice+=parseFloat(boletas[$i].amount);
}
}
}
}
return (parseInt(ret)).toFixed(2);
};
总计
$scope.getTotalInvoice=function(){
return (parseInt(TotalInvoice)).toFixed(2);
};
但我有这个错误
Error: 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations:
[[.....
如果我删除行TotalInvoice+=parseFloat(boletas[$i].amount);
错误消失,请帮助我
更新添加HTML
<div ng-repeat="branch in company.branch| filter: { id_branch:id_b}" >
<tr ng-repeat="client in branch.client.slice(page.ini,page.fin) >
<td>{{getSubTotal(company.branch.indexOf(branch ),branch.client.indexOf(client))}}</td>
</tr>
<tr> {{getTotalInvoice()}}</tr>
</div>
答案 0 :(得分:4)
每次调用getSubTotal()
函数时,它都会增加TotalInvoice的值。由于TotalInvoice也会显示在用户界面中,因此会对其进行监视,并且其更改会导致getSubTotal()
再次被调用,从而增加TotalInvoice等等。
TotalInvoice
时, getSubTotal()
应该设置为0。或者更好的是,getSubTotal()
根本不应该设置TotalInvoice。那不是它的工作。