Javascript AngularJS在repeater中对象为空时显示消息

Javascript AngularJS在repeater中对象为空时显示消息,javascript,angularjs,Javascript,Angularjs,我使用AngularJS和repeater来迭代一些结果。还有一个用于搜索的过滤器 有两个条件,我希望能够处理,我正在寻找最“角度”的方式 第一个条件是如果一开始就没有结果 第二个条件是,如果在使用筛选器时没有返回结果 我看到了,这似乎是足够的,我可以为每个条件创建一个。但是,是否有本机angular指令来处理这些条件,而不需要控制器中的代码 谢谢 您可以在过滤数组上添加ngSwitch指令,并根据其长度显示不同的HTML HTML: 另一个选项是直接在controller中的friends数

我使用AngularJS和repeater来迭代一些结果。还有一个用于搜索的过滤器

有两个条件,我希望能够处理,我正在寻找最“角度”的方式

第一个条件是如果一开始就没有结果

第二个条件是,如果在使用筛选器时没有返回结果

我看到了,这似乎是足够的,我可以为每个条件创建一个。但是,是否有本机angular指令来处理这些条件,而不需要控制器中的代码


谢谢

您可以在过滤数组上添加ngSwitch指令,并根据其长度显示不同的HTML

HTML:


另一个选项是直接在controller中的friends数组上应用$filter(“filter”),这将缩短HTML标记。

您可以使用此语法在未找到数据时显示消息

<p ng-show="(friends | filter:searchText).length==0">Sorry No Result Found</p>` 

抱歉,找不到结果

其中,friends是JSON对象。

允许您在处理完所有筛选器后为结果项提供别名。 然后可以使用此别名显示消息

<p ng-repeat="friend in friends | filter:searchText as displayedFriends">
    {{friend.name}}
</p>
<p ng-if="!displayedFriends.length">
    Nothing was found
</p>

{{friend.name}

什么也没找到


我确实注意到,有时刷新/加载时,“Nothing was found”(未找到任何东西)消息会快速闪烁。我给它加了一件ng斗篷,但似乎没用。有什么想法吗?谢谢您可以尝试切换CSS类而不是DOM节点。默认情况下隐藏“未找到任何内容”,并根据数组长度显示它。
<p ng-show="(friends | filter:searchText).length==0">Sorry No Result Found</p>` 
<p ng-repeat="friend in friends | filter:searchText as displayedFriends">
    {{friend.name}}
</p>
<p ng-if="!displayedFriends.length">
    Nothing was found
</p>