2016-04-15 6 views
1

Я создал приложение для панели Kanban с Angular, теперь я хотел бы поместить сумму отфильтрованных точек Post-Its и счетчик, например:AngularJS - Как суммировать фильтрованные элементы внука во вложенном ng-повторе

<input type="text" ng-model="searchText"> 

<div ng-init="col.TotalPoints = 0" ng-repeat="col in columns"> 
    <h3>{{col.Title}} - ({{ col.TotalPoints?? }} Pts.)</h3> 
    <div ng-init="subCol.Points = 0" ng-repeat="subCol in col.SubColumns"> 
     <h3>{{subCol.Title}} - {{ subCol.Points }} Pts.</h3> 
     <div ng-show="false" ng-bind="subCol.Points= (filteredPostIts| sumPointsFilter:'Points')" ></div> 
     <div ng-repeat="postIt in filteredPostIts = (subCol.PostIts | filter:searchText)"> 
      <p>#{{postIt.Id}}</p> 
      <p>{{postIt.Title}}</p> 
      <p>{{postIt.UserName}}</p> 
      <p>{{postIt.Points}} Points</p> 
     </div> 
    </div> 
</div> 

поручаю мои отфильтрованные пост-Сво filteredPostIts псевдоним, затем используются для ng-bind использовать sumPointsFilter перебрать все отфильтрованные пост-его и сумма их очков, что работает отлично. Точки подколонки пересчитываются, как только мы начинаем фильтровать некоторый пост-его, введя текст в ввод поиска.

Теперь я хотел бы рассчитать полные точки для всего столбца, который является суммой его подколонн (с учетом отфильтрованного post-its).

Это JSFiddle. Первый столбец «Não Iniciado» (не запущен), который имеет один подколонку «Backlog». Второй столбец - «Em andamento», который имеет две подколонки («Executando» и «Aguardando»).

Попробуйте напечатать marcello, и он будет фильтровать сообщение Марчелло и пересчитать точки для подколонн.

Как я мог достичь этого?

+0

Может вы создаете jsfiddle с набором переменных столбцов и подколиков? – r0m4n

+0

Конечно, могу, просто подожди немного. – Alisson

+0

@ r0m4n Я добавил JSFiddle, скажите, слишком ли он сложный, я попытался упростить свой сценарий. – Alisson

ответ

1

У вас есть совсем немного происходят на этом jsfiddle, но я думаю, что я вижу, что вы могли бы сделать ...

повторного использования в том же Суммировании фильтр так:

<h3>{{col.Titulo}} - ({{ col.Divisorias | sumPointsFilter: 'Points'}} Pts.)</h3> 

https://jsfiddle.net/r0m4n/9zbrohhy/54/

+0

Это все решило, я никогда не думал о повторном использовании одного и того же фильтра, это было проще, чем я думал. Каждый день я все больше и больше обнаруживаю, как AngularJS является простым и мощным одновременно. Благодаря!!! – Alisson