Angularjs ng-repeat промежуточный итог на основе значения

Работа в angularjs и поиск промежуточного итога на основе значения, полученного из данных. Следующий код всегда возвращает полное общее значение для всех элементов.

<div ng-repeat="child in pItem.childItems | orderBy:'displayOrder'" ng-init="$parent.totalValue = $parent.totalValue + child.field[0].value">

Изменение этого значения из родительской области в дочернюю очищает значение totalValue при каждом повторении. Таким образом, значение всегда равно дочернему значению только для этого одного элемента.

Я ищу что-то похожее на следующее. Где Item1 имеет значение 2, Item2 - значение 3, а Item3 - значение 4.

  1. Item1 2
  2. Item2 5
  3. Item3 9

1 ответ

Решение

Попробуйте что-то вроде этого, это должно сработать:

<div 
  ng-repeat="child in pItem.childItems | orderBy:'displayOrder'" 
  ng-init="child.totalValue = pItem.childItems[$index-1].totalValue + child.field[0].value">
    {{child.field[0].value}} {{child.totalValue}}
</div>

Таким образом, вы в основном суммируете с предыдущим результатом totalValue.

Другие вопросы по тегам