Bearbeiten: Die folgenden Antworten haben die + 1-Funktion, die ebenfalls angewendet wird, nicht berücksichtigt. Ich suche immer noch, wie ich beides machen kann.Angular ng-Klasse über ng-klick innerhalb ng-repeat
Ich habe eine ng-click-Funktion, die auf einer Schaltfläche innerhalb einer ng-Wiederholung aufgerufen wird, aber jedes Mal, wenn eine der Schaltflächen angeklickt wird, bewirkt es, dass die Klasse auf allen Schaltflächen geändert wird.
Wie kann ich meinen Code reparieren, damit es nur die angeklickte Schaltfläche selbst ändert?
(Beachten Sie die Zahlen gut funktionieren, es ist nur die Klassen, die alle zusammen ändern.)
Der Winkel Controller-Code:
$scope.activeClass = false;
$scope.addHeart = function(post){
$scope.activeClass = !$scope.activeClass;
$scope.activeClass ? post.hearts += 1 : post.hearts -= 1;
};
Und der HTML:
<button ng-class="{'red' : activeClass}" ng-click="addHeart(post)">{{post.hearts | number}}</button>
'activeClass' ist global für alle Schaltflächen zugänglich. Versuchen Sie, es basierend auf dem Index unabhängig zu machen. –
Sie haben zwei Optionen in den Antworten zur Verfügung gestellt, obwohl es viel mehr geben könnte. Wenn keine geeignet ist, bearbeiten Sie Ihren Beitrag, um zu erklären, ob Sie spezielle Bedürfnisse haben! – YannickHelmut
Wenn Sie eine einzelne Auswahl gleichzeitig wünschen, versuchen Sie dies https://jsfiddle.net/U3pVM/29445/. –