我找到了这个答案:AngularJS - hide parent element if children loop is empty (filtered)但它似乎对我不起作用。
我的代码完美无缺,是:
<div ng-repeat="lawyer in articlesByAuthor | orderObjectBy:'lastname':false" ng-show="sortType=='author'">
<h3>{{lawyer.fullname}}</h3>
<br/>
<table border="1">
<thead>
<tr>
<th style="padding: 2px 5px;">
Date Published
</th>
<th style="padding: 2px 5px;">
Article
</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="article in lawyer | filter:searchArticle">
<td style="padding: 2px 5px;white-space:nowrap;">
{{article.date | date:'MMM. dd, yyyy'}}
</td>
<td style="padding: 2px 5px;;">
<a href="{{article.link}}" target="_blank" ng-if="article.link != ''"><span ng-bind-html="renderHtml(article.title)" class="articlePage"></span></a><span ng-bind-html="renderHtml(article.title)" class="articlePage" ng-if="article.link == ''"></span>
</td>
</tr>
</tbody>
</table>
<br/><br/>
</div>
但是,如果搜索呈现没有文章出现,我仍然看着一个名字超过它的空表。
基于以上所述,我尝试将整个事情包装成:
<div ng-show="(lawyer | filter:searchArticle).length">
</div>
无济于事。它无论如何都没有显示出来。我已将lawyer
替换为article
和articlesByAuthor
,但都无效。
我错过了什么?
答案 0 :(得分:0)
想出来。代码是对的。我只是把它放在错误的地方。我需要将条件ng-show放在第一个ng-repeat中。