Angular Настройка класса в Ng-повторе

Я создаю список в ng-repeat, мне нужно предоставить все элементы li, которые являются n-м ребенком их отца или более, определенного класса (в нашем ng-repeat это означает всех детей, у которых есть индекс больше среднего). Например, если в списке 10 элементов, мне нужно дать 5-му, 6-му... 10-му li детям класс. Так что если мой код - это что-то такое -

 [ul]
    [li  ng-repeat="friend in friends"]
       {{friend.name}} who is {{friend.age}} years old.
    [/li]
  [/ul]

Что такое возможность и хороший способ назначить класс для детей из среднего индекса и выше? Мои условия заключаются в том, что я не должен изменять структуру html. Я могу добавить directives\filters или добавить элементы в контроллеры.

Ответы

Ответ 1

просто используйте ng-class повторяющийся элемент, например:

<li
  ng-repeat="friend in friends"
  ng-class="{special: $index > friends.length / 2 - 1}">

  {{friend.name}}
</li>

demo: http://jsbin.com/iFigAYi/1/


или извлечь логику, например:

<ul>
  <li ng-repeat="friend in friends" ng-class="getClass($index, friends)">
    {{friend.name}}
  </li>
</ul>

и

$scope.getClass = function getClass(idx, list) {
  return {
    special: idx > list.length / 2 - 1
  };
};