跳过ng-repeat中的第一项

时间:2014-12-25 07:48:52

标签: angularjs

我想跳过ng-repeat中的第一项

..first item here  

<ul class="highlight-topright">
        <li ng-repeat="item in hpHeadlines | filter:$index>0">
          ...
        </li>
</ul>

它不起作用,这里有什么不对吗?

据我所知,我可以使用ng-if,ng-show隐藏内容,但我无法理解为什么过滤器在这种情况下不能在1.3.x中工作。

感谢。

6 个答案:

答案 0 :(得分:77)

<ul class="highlight-topright">
        <li ng-repeat="item in hpHeadlines" ng-if="$index > 0">
          ...
        </li>
</ul>

答案 1 :(得分:31)

首先使用$

<ul class="highlight-topright">
        <li ng-repeat="item in hpHeadlines" ng-hide="$first">
          ...
        </li>
</ul>

或者,

  <ul class="highlight-topright">
            <li ng-repeat="item in hpHeadlines" ng-if="!$first">
              ...
            </li>
    </ul>

答案 2 :(得分:13)

您还可以使用limitTo过滤器。

  

作为负索引,begin表示从输入结束的偏移量。默认为0。

<li ng-repeat="item in hpHeadlines | limitTo: 1 - hpHeadlines.length">
  ...
</li>

答案 3 :(得分:2)

也许我迟到了回答这个问题。但就新手而言,我正在提供解决方案。由于您想跳过第一条记录,因此您可以使用$ index或$ first来实现,如下所示:

<li ng-repeat="item in hpHeadlines" ng-if="$index">       OR

<li ng-repeat="item in hpHeadlines" ng-if="!($first)">

正如您所看到的,在两者中,ng-if正在跳过&#39; 0&#39;值。

答案 4 :(得分:0)

您可以使用ng-showng-if而不将其用作过滤器。它更容易,因为您知道要跳过的索引。

通常在您想要执行与所有阵列相关的操作时使用过滤器,例如格式化,或者您不知道它们驻留在哪里的部分。

<ul class="highlight-topright">
        <li ng-repeat="item in hpHeadlines" ng-show="$index != 0">
          {{item.name}}
        </li>
     </ul>

JS Fiddle

答案 5 :(得分:0)

您可以使用ng-show,如下所示:

<ul class="highlight-topright">
    <li ng-repeat="item in hpHeadlines" ng-show="$index > 0">
      ...
    </li>
</ul>

或者您可以使用 ng-if 指令,以防您不想添加不可见的dom元素。