使用 ng-repeat 和 limitTo 来限制显示的可见项目数
Using ng-repeat and limitTo to limit the number of visible items displayed
我试图将我的结果集限制为固定数字。我可以将limitTo
与ng-repeat
一起使用,但这会限制项目,无论其当前可见性如何,并从 DOM 中删除项目。我想限制为许多可见项目,同时将所有内容保留在 DOM 中。
这是我拥有的当前代码。我的目标是始终在列表中显示不超过 50 个项目,即使items
包含 500 个项目。
<div ng-repeat="item in items | limitTo: 50">
<div ng-show="item.visible">
<p>item.id</p>
</div>
</div>
这最初将限制为 50 个项目,但如果我过滤列表(通过修改 item.visible 在某些项目上),列表永远不会显示 50 - 500 范围内的项目,而是显示少于 50 个项目。限制ng-repeat
以使其仅将可见项目计入限制限制的正确方法是什么?
您可以使用:
<div ng-repeat="item in items | filter:{visible: true} | limitTo: 50">
<p>{{item.id}}</p>
</div>
filter:{visible: true}
将返回所有可见项目的列表
您可以查看 angularjs 文档以获取有关过滤器过滤器的更多信息。http://docs.angularjs.org/api/ng.filter:filter
也可以这样做:
<div ng-repeat="item in items" ng-show="$index<50">
<p>item.id</p>
</div>
有几种方法,也许最可重用的是让您创建自己的"可见"自定义过滤器,该过滤器在您的项目上查找可见属性。然后你可以把它们链起来。
<div ng-repeat="item in items | visible | limitTo: 50">
这是创建自定义过滤器的 SO 链接
您可以将 ng-if 与 $index 一起使用来指定 DOM 显示。仍然生成 ng-if 注释,但不加载对象,因此注意到性能的提高。
<div ng-init="your.objects={{},{},{}}; your.max=10">
<div ng-repeat="object in your.objects" ng-if="$index<your.max">
{{object}}
</div>
</div>
相关文章:
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何在生成下载文件时显示加载动画
- React重新渲染但未显示正确的组件
- nodejs-expressjs上传图像并显示它们
- 使用JSP从服务器检索和显示图像
- 音频控件在mouseover上显示,在mouseout上淡出
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 显示5秒后隐藏潜水
- 画廊图像未显示
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 高亮显示时编辑文本大小和颜色
- 如何更改针对不同屏幕大小显示的项目数
- 在 Ember.js 中显示项目数
- 使用 ng-repeat 和 limitTo 来限制显示的可见项目数
- 使用jQuery更改显示的项目数