Find length of filtered angular js result

I have ng-repeat with fliter as 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 if the result is empty or not and show a message. Can this be done? I tried {{articles.length}}

but it is not the length of the filtered result.

+3


source to share


1 answer


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 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

A similar question, with a different demo: How to display the length of the filtered ng-repeat data

+1


source







All Articles