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