Saya membuat daftar menggunakan ng-repeat sesuatu seperti ini
<div ng-repeat="file in files">
{{file.name}}
</div>
Tetapi untuk elemen terakhir saja saya ingin memiliki kelas ( <div class="last">test</div>
) termasuk di dalamnya. bagaimana saya bisa mencapai ini menggunakan ng-repeat?
Jawaban:
Anda dapat menggunakan
$last
variabel dalamng-repeat
arahan. Lihatlah doc .Anda dapat melakukannya seperti ini:
Di mana
computeCssClass
fungsicontroller
yang mengambil argumen tunggal dan mengembalikan'last'
ataunull
.Atau
sumber
<div ng-repeat="file in files" ng-class="{last: $last}"> {{file.name}} </div>
Lebih mudah dan lebih bersih untuk melakukannya dengan CSS.
HTML:
CSS:
The
:last-of-type
pemilih saat ini didukung oleh 98% dari browsersumber
ng-repeat
diikuti oleh<div class="file"><!-- dummy for creating new element --></div>
, dan Anda ingin memisahkan daftar div .file yang ada .ng-repeat
elemen untuk membedakan mereka dari trailingdiv
Untuk menguraikan jawaban Paul, ini adalah logika controller yang bertepatan dengan kode templat.
Perlu juga dicatat bahwa Anda benar-benar harus menghindari solusi ini jika memungkinkan. Secara alami CSS dapat menangani hal ini, membuat solusi berbasis JS tidak perlu dan tidak memiliki kinerja. Sayangnya jika Anda perlu mendukung IE8> solusi ini tidak akan berfungsi untuk Anda ( lihat dokumen dukungan MDN ).
Solusi Khusus CSS
sumber
Itu berhasil untuk saya! Semoga berhasil!
sumber
Anda dapat menggunakan
limitTo
filter dengan-1
untuk menemukan elemen terakhirContoh :
sumber
Jawaban yang diberikan oleh Fabian Perez bekerja untuk saya, dengan sedikit perubahan
Html yang diedit ada di sini:
<div ng-repeat="file in files" ng-class="!$last ? 'other' : 'class-for-last'"> {{file.name}} </div>
sumber