2015-07-28 80 views
0

我在checkbox选择物品列表时遇到了总价格问题。这个for循环,我得到的只是前两美元的金额(我知道它是selectedTotal += (getAmount.amount + getAmount.amount);问题,但不知道如何解决它),当有多于三个选定列表项目时,我无法获得总价格金额。 tempData是阵列var tempData = []帮助将不胜感激。计算AngularJS中的价格总和

HTML

<label class="item item-input "> 
    <b class="input-label">Total Amount: </b> 
    <span style="margin-left:30%;"> ${{getTotal()}} </span> 
</label> 

控制器

$scope.getTotal = function() { 
    var selectedTotal = 0; 
    for (var i = 0; i < $scope.tempData.length; i++) { 
     if ($scope.tempData[i].checked) { 
      var getAmount = $scope.tempData[i]; 
      selectedTotal += (getAmount.amount + getAmount.amount); 
     } 
     return selectedTotal; 
    } 
} 
+0

为什么你'selectedTotal + =(getAmount.amount + getAmount.amount);'(getAmount.amount两次)? – Shahar

+0

我现在知道了,我删除了第二个getAmount.amount,然后将返回的selectedTotal放在forloop的外面,现在它工作 –

回答

2

您必须将return selectedTotal放在循环外部,否则它将在循环的每次迭代后返回值。

$scope.getTotal = function() { 
    var selectedTotal = 0; 
    for (var i = 0; i < $scope.tempData.length; i++) { 
     if ($scope.tempData[i].checked) { 
      var getAmount = $scope.tempData[i]; 
      selectedTotal += (getAmount.amount + getAmount.amount); 
     } 
    } 
return selectedTotal; 
} 

这里阅读:Return in for loop or outside loop

2

尝试之外返回selectedTotal for循环。

+0

谢谢,它解决了这个问题。 :) –