本文介绍了使用 ng-repeat 和 limitTo 限制显示的可见项的数量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将我的结果集限制为固定数量.我可以将 limitTong-repeat 一起使用,但这会限制项目,而不管它们当前的可见性如何,并从 DOM 中删除项目.我想限制可见项目的数量,同时将所有内容保留在 DOM 中.

这是我当前的代码.我的目标是始终在列表中显示不超过 50 个项目,即使 items 包含 500 个项目.

<div ng-show="item.visible"><p>item.id</p>

这最初将限制为 50 个项目,但如果我过滤列表(通过修改某些项目的 item.visible),该列表从不显示 50 - 500 范围内的项目,而是显示少于 50 个项目.限制 ng-repeat 以便它只将可见项目计入限制限制的正确方法是什么?

解决方案

您可以使用:

<p>{{item.id}}</p>

filter:{visible: true} 将返回所有可见项的列表

您可以查看 angularjs 文档以获取有关过滤器过滤器的更多信息.http://docs.angularjs.org/api/ng.filter:filter

I'm trying to limit my result sets to a fixed number. I can use limitTo with ng-repeat, but this limits items regardless of their current visibility and removes items from the DOM. I want to limit to a number of visible items while keeping everything in the DOM.

Here is the current code that I have. My goal is to always show no more than 50 items in the list even though items contains 500 items.

<div ng-repeat="item in items | limitTo: 50">
  <div ng-show="item.visible">
    <p>item.id</p>
  </div>
</div>

This will initially limit to 50 items, but if I filter the list (by modifying item.visible on some items), the list never shows items in the range of 50 - 500 and instead displays less than 50 items. What's the right way to limit an ng-repeat so that it only counts visible items towards the limit restriction?

解决方案

You can use:

<div ng-repeat="item in items | filter:{visible: true} | limitTo: 50">
    <p>{{item.id}}</p>
</div>

filter:{visible: true} will return a list of all visible items

You can take a look at the angularjs docu for more information on the filter filter.http://docs.angularjs.org/api/ng.filter:filter

这篇关于使用 ng-repeat 和 limitTo 限制显示的可见项的数量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 05:05