Расчет суммы цены в AngularJS

0

У меня возникли проблемы с получением общей суммы цены, когда этот checkbox. С этим циклом for все, что я получаю, это первые два долларовых суммы (я знаю, что это selectedTotal += (getAmount.amount + getAmount.amount); проблема, но не знаю, как это исправить), я не могу получить общую сумму когда имеется более трех выбранных элементов списка. tempData - это массив var tempData = [] Помощь будет оценена.

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 дважды)?
  • 0
    Я получил это сейчас, я удаляю второй getAmount.amount, а затем помещаю возвращаемый selectedTotal за пределы forloop на это работает сейчас
Теги:

2 ответа

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;
}

Читайте здесь: возврат в цикл цикла или внешнего цикла

2

Попробуйте вернуть selectedTotal вне цикла for.

  • 0
    Спасибо, это решило проблему. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню