2015-10-01 4 views
0

У меня есть список чисел, повторяющихся горизонтально, используя ng-repeat. В конце последнего номера есть div, где я хочу отображать сумму всех чисел. Как это сделать, используя фильтр на экране. Это вообще возможно.Как использовать угловые фильтры на Frontend/Templates

Я знаю способ привязки его переменной JS. Но я хочу добиться этого в самом шаблоне. что-то вроде:

Итого {{суммы (п в repeatedarray)}}

Заранее спасибо

ответ

0

Вы можете сделать это с помощью нескольких способов. Ниже приведены ссылки для быстрой справки.

Calculating sum of repeated elements in AngularJS ng-repeat

Вы можете создать собственный фильтр для этого, как указано ниже.

angular.module('caco.feed.filter', []) 
.filter('sumByKey', function() { 
    return function(data, key) { 
     if (typeof(data) === 'undefined' || typeof(key) === 'undefined') { 
      return 0; 
     } 

     var sum = 0; 
     for (var i = data.length - 1; i >= 0; i--) { 
      sum += parseInt(data[i][key]); 
     } 

     return sum; 
    }; 
}); 

Для справки ниже приведен рабочий пример.

CodePen

+0

Никогда не использовал пользовательский фильтр перед ... Что данные и ключ, и как они прошли –

+0

прекрасно работает ... только я буду добавлять проверку данных! === Null, так как мой array может быть null и typeof (null) возвращает объект. –