2015-04-23 4 views
0

Я пытаюсь добавить класс в ng-class в мое приложение.Как настроить класс в моем случае

У меня есть что-то вроде

HTML

<li ng-repeat="item in items" 
     ng-click="getItem(item)" 
     ng-class="{shine : item.isPick}" // shine class will make the font color change to red 
     >{{item.name}} 
</li> 

В мой контроллер

$scope.getItem = function(item) { 
    $scope.items.forEach(function(item){ 
     item.isPick = false; // remove all the items that have shine class 
    }) 
    item.isPick = true; // adding the shine class back 
} 

В основном я хочу, чтобы удалить все другие 'shine' класс, за исключением выбранного элемента, когда пользователь нажимает на нее. Мои коды выше работают, но я думаю, что есть лучший способ сделать это, а не зацикливать все элементы. Может кто-нибудь мне помочь? Большое спасибо!

ответ

3

Используйте $index в повторителя, и добавить класс, когда выбран этот индекс:

<li ng-repeat="item in items" 
    ng-click="getItem($index)" 
    ng-class="{shine : activeIndex == $index}" 
    >{{item.name}} 
</li> 

$scope.getItem = function(index) { 
    $scope.activeIndex = index; 
} 
Смежные вопросы