mardi 5 mai 2015

How to set class to first item in ng-repeat that has been sorted with orderBy?

I have a list of items, which comes in unsorted, I use orderBy to sort by name alphanumerically.

<li class="ticker-li"
    ng-repeat="ticker in tickers | orderBy:'ticker'"
    ng-class="{'selected':ticker.selected}">

Now in my controller this is how I'm currently setting the first items selected class:

var vs = $scope;
vs.tickers = data;
vs.tickers[0].selected = true;

^ This worked perfectly until I needed to add the orderBy so that items appear by alpha order:

enter image description here

I found this answer here, however it locks the first item to always have the class.

Modifying my code a bit, I was able to have other buttons gain that class on click, however the $first item still stayed with the class.

ng-class="{'selected':$first || ticker.selected}"

enter image description here

How should the code either in the markup or controller need to be updated to fix this issue?

Aucun commentaire:

Enregistrer un commentaire