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