AngularJS — ngRepeat для отображения выбранной строки как активной

#javascript #angularjs

#javascript #angularjs

Вопрос:

Я боролся с ng-repeat , чтобы показать выбранную строку как активную.

Любая помощь будет высоко оценена. Пожалуйста, найдите Plukr для этого здесь http://plnkr.co/edit/PXgoCkqcKrZKPakjvlvc?p=preview

Пожалуйста, обратите внимание, что мне удалось сделать это при использовании в меню навигационной панели, где в HTML у меня есть

 ng-class="{'active' : setActive('/blah')}">
  

и в контроллере у меня есть

 $scope.setActive = function (loc) {
    return loc === $location.path();
};
  

но это явно не работает здесь для меня.

Комментарии:

1. Ваш plnkr не соответствует тому, что вы показали здесь.

2. Привет, извините, это было непонятно .. я пробовал эти биты, но это не сработало. Поэтому я решил убрать это из plunkr.

Ответ №1:

Вы можете добавить

 ng-class="{active:item == selected}"
  

для ваших <a> элементов

http://plnkr.co/edit/gwhKwFkpTaA4EWJ8vrAO?p=preview

Ответ №2:

Используйте

 ng-class="{'active':activeItem(item)}"
  

затем в вашем скрипте:

 $scope.activeItem=function(item){
    return item.$id == $scope.selected.$id
}
  

plnkr

Комментарии:

1. Спасибо, хотя я не использовал этот метод, это научило меня кое-чему для чего еще, что я должен сделать.