2

I am having a problem with row count in after ng-repeat and more then one filter, I want to count the current number of rows after filtering the table with more then one filter, example:

<tr ng-repeat="person in data | filter:query | filter : name | filter {m_resource: resourceFilter} | filter : {m_id : idFilter}">
</tr>

The m_resource, m_id are filds in data, I can't use as filter due badidnet error, is there amother way to do it?

Community
  • 1
  • 1
Itsik Mauyhas
  • 3,824
  • 14
  • 69
  • 114

3 Answers3

2

You should be able to do something like this:

ng-repeat="person in filtered = ( data | filter:query | filter : name | filter {m_resource: resourceFilter} | filter : {m_id : idFilter} )"

And then use {{ filtered.length }} for the number of rows.

dfsq
  • 191,768
  • 25
  • 236
  • 258
2
<table>
    <tr ng-repeat="person in rows = (data | filter:query | filter : name | filter {m_resource: resourceFilter} | filter : {m_id : idFilter})">
    </tr>
</table>
<span>There are {{ rows.length }} rows in the table</span>

Same question : How can I obtain the result array of an angular "| filter" expression in a variable?

Community
  • 1
  • 1
Cyril Gandon
  • 16,830
  • 14
  • 78
  • 122
2

I found something that works even if you add limitTo filter

<tr ng-repeat="person in filtered = (data | filter:query | filter : name | filter {m_resource: resourceFilter} | filter : {m_id : idFilter}) | limitTo: 5">

Then you have just to do

{{filtered.length}}

Fiddle sample