Estoy creando una lista usando ng-repeat algo como esto
<div ng-repeat="file in files">
{{file.name}}
</div>
Pero solo para el último elemento, me gustaría <div class="last">test</div>incluir una clase ( ). ¿Cómo puedo lograr esto usando ng-repeat?

Respuestas:
Puede usar
$lastvariable dentro de lang-repeatdirectiva. Echa un vistazo a doc .Puedes hacerlo así:
Donde
computeCssClasses función de locontrollerque toma argumento único y devuelve'last'onull.O
fuente
<div ng-repeat="file in files" ng-class="{last: $last}"> {{file.name}} </div>Es más fácil y limpio hacerlo con CSS.
HTML:
CSS:
El
:last-of-typeselector actualmente es compatible con el 98% de los navegadoresfuente
ng-repeates seguido por<div class="file"><!-- dummy for creating new element --></div>, y le gustaría separar la lista de archivos .file existentes .ng-repeatelementos para diferenciarlos del finaldivPara explicar la respuesta de Paul, esta es la lógica del controlador que coincide con el código de la plantilla.
También vale la pena señalar que realmente debería evitar esta solución si es posible. Por naturaleza, CSS puede manejar esto, hacer que una solución basada en JS sea innecesaria y no tenga un buen rendimiento. Desafortunadamente, si necesita admitir IE8> esta solución no funcionará para usted ( consulte los documentos de soporte de MDN ).
Solución solo para CSS
fuente
¡Funciona para mi! ¡Buena suerte!
fuente
Puede usar
limitTofilter con-1para encontrar el último elementoEjemplo :
fuente
La respuesta dada por Fabián Pérez funcionó para mí, con un pequeño cambio.
El html editado está aquí:
<div ng-repeat="file in files" ng-class="!$last ? 'other' : 'class-for-last'"> {{file.name}} </div>fuente