Shijin TR
Shijin TR

Reputation: 7756

find length of filtered result angular js

I have a ng-repeat with fliter like below,

HTML

  <li  ng-repeat="article_data in articles | ArticleFilter:sfilter">
   {{article_data.article_title}}
 </li>

Javascript

ey.filter('ArticleFilter', function(){

return function(items, filters){

    var arrayToReturn = []; 
    if(value.article_title.toLowerCase().indexOf(filters.search_text.toLowerCase())==0)
     arrayToReturn.push(value);

return arrayToReturn;
}})

I need to check the result is empty or not,and show a message .Is it possible to do? I have tried {{articles.length}} but this is not the length of filtered result.

Upvotes: 3

Views: 83

Answers (1)

Kalhan.Toress
Kalhan.Toress

Reputation: 21901

try something like this,

<li  ng-repeat="article_data in articles | ArticleFilter:sfilter as filteredResults">
   {{article_data.article_title}}
</li>

 {{ filteredResults.length }}

so you can have the code like this,

<ul>
    <li  ng-repeat="article_data in articles | ArticleFilter:sfilter as filteredResults">
       {{article_data.article_title}}
   </li>
</ul>

<p ng-if='filteredResults.length === 0'> No results.</p>

Another way

<li  ng-repeat="article_data in filteredResults = (articles | ArticleFilter:sfilter)">
       {{article_data.article_title}}
</li>

<ul>
    <li  ng-repeat="article_data in filteredResults = (articles | ArticleFilter:sfilter)">
       {{article_data.article_title}}
    </li>
</ul>

<p ng-if='filteredResults.length === 0'> No results.</p>

PLUNK : http://plnkr.co/edit/01JZZzBBOSfrpcM4dbVR?p=preview

Similar question, with another demo: How to display length of filtered ng-repeat data

Upvotes: 1

Related Questions