2015-07-28 115 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

謝謝,它解決了這個問題。 :) –