Подтвердить что ты не робот

Пропустить первый элемент в ng-repeat

Я хочу пропустить первый элемент в 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 в этом случае.

Спасибо.

4b9b3361

Ответ 1

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

Ответ 2

Сначала используйте $first для этого:

<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>

Ответ 3

Вы также можете использовать фильтр limitTo.

Как отрицательный индекс, begin указывает смещение от конца ввода. По умолчанию 0.

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

Ответ 4

Возможно, я опоздал, чтобы ответить на этот вопрос. Но только для новичков, я предоставляю решение. Поскольку вы хотите пропустить первую запись, вы можете использовать либо $index, либо $first для достижения, как показано ниже:

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

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

Как вы могли видеть, в обоих случаях ng-if пропускает значение "0".

Ответ 5

Вы можете использовать ng-show или ng-if, не используя его в качестве фильтра. Это проще, потому что вы знаете индекс, который хотите пропустить.

Использовать фильтры обычно, когда вы хотите сделать что-то, что касается всего массива, например, форматирование или части, которые вы не знаете, где они находятся.

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

JS Fiddle

Ответ 6

Вместо этого вы можете использовать ng-show, например:

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

Или вы можете использовать директиву ng-if, если вы не хотите добавлять невидимые элементы dom.