2

我有一个带有 2 个过滤器的 ng-repeat:

<div class="container">
    <div ng-repeat-start="addresses in Address.Entries | filter:{IsRegistered: true} | filterDate:'InfoDetails'">
        {{ addresses.name }}
        {{ addresses.number }}
        {{ addresses.email }}
        {{ addresses.contact}}
    </div>
</div>

如果在 ng-repeat 中重复的项目的长度大于零,我如何将 ng-show 或 ng-hide 添加到 with class="container" 以仅显示此元素?

4

2 回答 2

4

您需要将过滤结果分配给一个新变量,以考虑过滤列表的长度。

然后您可以使用新变量来显示/隐藏该部分。

工作小提琴

<div class="container" ng-show="filtered.length > 0">
    <div ng-repeat-start="addresses 
         in filtered = (Address.Entries 
                          | filter:{IsRegistered: true} 
                          | filterDate:'InfoDetails')">
          {{ addresses.name }}
          {{ addresses.number }}
          {{ addresses.email }}
          {{ addresses.contact}}
     </div>
</div>
于 2014-08-21T12:54:14.183 回答
1

尝试编写一个单独的函数,该函数将在您的控制器中发回真/假(这将确定 ng-show)。

像下面这样的东西,

<div class="container" ng-show="functionToDeterminetheState()">
   <div ng-repeat-start="addresses in Address.Entries | filter:{IsRegistered: true} | filterDate:'InfoDetails'">
{{ addresses.name }}
{{ addresses.number }}
{{ addresses.email }}
{{ addresses.contact}}

于 2014-08-21T12:55:32.707 回答