使用ng-repeat和limitTo限制显示的可见项目数

Bil*_*ill 46 javascript angularjs angularjs-ng-repeat

我试图将结果集限制为固定数字.我可以用limitTong-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>
Run Code Online (Sandbox Code Playgroud)

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

bek*_*ite 69

您可以使用:

<div ng-repeat="item in items | filter:{visible: true} | limitTo: 50">
    <p>{{item.id}}</p>
</div>
Run Code Online (Sandbox Code Playgroud)

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

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


Kos*_*tyn 15

它也可以这样做:

<div ng-repeat="item in items" ng-show="$index<50">
    <p>item.id</p>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 此方法以物理方式将 HTML 放置到位。如果您有 2000 条记录,则有 2000 个 div 被放入您的 HTML 但没有被看到。`ng-if` 稍微好一点,因为它会转储评论而不是 html,但最好只使用 limitTo 这样它就不会向文档打印额外的内容 (3认同)