Я создаю список с помощью ng-repeat что-то вроде этого
<div ng-repeat="file in files">
{{file.name}}
</div>
Но только для последнего элемента я хотел бы <div class="last">test</div>
включить в него class ( ). Как я могу добиться этого с помощью нг-повтор?
Ответы:
Вы можете использовать
$last
переменную вng-repeat
директиве. Посмотрите на док .Вы можете сделать это так:
Где
computeCssClass
функция,controller
которая принимает единственный аргумент и возвращает'last'
илиnull
.Или
источник
<div ng-repeat="file in files" ng-class="{last: $last}"> {{file.name}} </div>
Это проще и чище сделать с помощью CSS.
HTML:
CSS:
:last-of-type
Селектор в настоящее время поддерживается на 98% браузеровисточник
ng-repeat
следует<div class="file"><!-- dummy for creating new element --></div>
, и вы хотели бы выделить список существующих .file divs .ng-repeat
элементы, чтобы отличать их отdiv
Чтобы уточнить ответ Пола, это логика контроллера, которая совпадает с кодом шаблона.
Также стоит отметить, что вам действительно следует избегать этого решения, если это возможно. По своей природе CSS может справиться с этим, поэтому решение на основе JS не нужно и неэффективно. К сожалению, если вам нужна поддержка IE8>, это решение не будет работать для вас ( см. Документацию по поддержке MDN ).
Решение только для CSS
источник
Это подходит для меня! Удачи!
источник
Вы можете использовать
limitTo
фильтр с-1
для поиска последнего элементаПример :
источник
Ответ, данный Фабианом Пересом, сработал для меня с небольшим изменением
Отредактированный HTML здесь:
<div ng-repeat="file in files" ng-class="!$last ? 'other' : 'class-for-last'"> {{file.name}} </div>
источник