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