Reputation: 7756
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
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