我有一个带有 fliter 的 ng-repeat,如下所示,
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;
}})
我需要检查结果是否为空,并显示一条消息。可以吗?我试过 {{articles.length}}
但这不是过滤结果的长度。
最佳答案
尝试这样的事情,
<li ng-repeat="article_data in articles | ArticleFilter:sfilter as filteredResults">
{{article_data.article_title}}
</li>
{{ filteredResults.length }}
所以你可以有这样的代码,
<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>
另一种方式
<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
类似的问题,还有另一个演示:How to display length of filtered ng-repeat data
关于javascript - 找到过滤结果 Angular js的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31332753/