55

我将如何隐藏 ng-repeat 的第一个元素?

<div ng-repeat="item in items" ng-hide="true">
    <div>{{ item.value }}</div>
</div>

这适用于整个 ng-repeat 块被隐藏,但我将如何只隐藏项目中的第一项?我想使用更突出的 html/etc 以完全不同的方式显示它,因此将它放在该数据列表中很有用。

4

4 回答 4

114

你可以这样做

<div ng-repeat="item in items" ng-show="!$first">
    <div>{{ item.value }}</div>
</div>

以下是文档:http ://docs.angularjs.org/api/ng.directive:ngRepeat

于 2013-04-01T04:27:06.137 回答
8

无需隐藏,只需使用过滤器从列表中排除第一项即可:

<div ng-repeat="item in items|filter:$index>0">
    <div>{{ item.value }}</div>
</div>
于 2014-11-04T19:13:37.860 回答
1

在 Angular 的更新版本中有一个更简单的解决方案。

过滤器“limitTo”现在支持“开始”参数(文档):

{{ limitTo_expression | limitTo : limit : begin}}

所以你可以在 ng-repeat 中像这样使用它:

ng-repeat="item in items | limitTo: items.length : 1"

这意味着 ng-repeat 将从索引 1 开始(而不是默认索引 0),并将持续到 items 数组的其余长度(小于 items.length,但 limitTo 会处理得很好)。

于 2016-01-23T02:15:03.843 回答
0

如果您需要跳过最后一个,请使用 ng-if='!$last'。

于 2016-05-23T19:07:51.393 回答