Редактировать: В ответах ниже не учтена функция +1, которая также применяется. Все еще ищу, как я могу это сделать.Угловой ng-класс через ng-click внутри ng-repeat
У меня есть функция ng-click, вызываемая кнопкой внутри ng-repeat, но каждый раз, когда нажимается одна из кнопок, это вызывает изменение класса на всех кнопках.
Как я могу исправить свой код, чтобы его можно было изменить, только сама кнопка клика?
(Имейте в виду, что номера работают нормально, это просто классы, которые меняют все вместе.)
Угловое код контроллера:
$scope.activeClass = false;
$scope.addHeart = function(post){
$scope.activeClass = !$scope.activeClass;
$scope.activeClass ? post.hearts += 1 : post.hearts -= 1;
};
И HTML:
<button ng-class="{'red' : activeClass}" ng-click="addHeart(post)">{{post.hearts | number}}</button>
'activeClass' доступен по всему миру для всех кнопок. попробуйте сделать его независимым на основе индекса. –
В ответах есть два варианта, хотя их может быть много. Если ни один из них не подходит, отредактируйте сообщение, чтобы узнать, есть ли у вас особые потребности! – YannickHelmut
, если в случае необходимости вы хотите выбрать один раз, попробуйте это https://jsfiddle.net/U3pVM/29445/. –