Ich versuche zu arbeiten, wie man mit ngClick eine Klasse hinzufügt. Ich habe meinen Code auf plunker hochgeladen. Klicken Sie hier . Wenn ich mir die eckige Dokumentation ansehe, kann ich nicht genau herausfinden, wie es gemacht werden soll. Unten ist ein Ausschnitt meines Codes. Kann mich jemand in die richtige Richtung führen?
<div ng-show="isVisible" ng-class="{'selected': $index==selectedIndex}" class="block"></div>
Regler
var app = angular.module("MyApp", []);
app.controller("subNavController", function ($scope){
$scope.toggle = function (){
$scope.isVisible = ! $scope.isVisible;
};
$scope.isVisible = false;
});
javascript
angularjs
angularjs-ng-click
ng-class
Ein neues Kind im Wohnblock
quelle
quelle
Antworten:
Sie müssen nur eine Variable in die Direktive "ng-class" einbinden und sie vom Controller aus ändern. Hier ist ein Beispiel dafür:
Hier ist das Beispiel für jsFiddle
quelle
class
ist ein reserviertes Wort, verwenden SieclassName
stattdessen, YUI-Compiler kann dies nicht minimieren.Ich möchte die Klasse " " in meinem Code dynamisch hinzufügen oder entfernen , hier, was ich getan habe.
active
ng-click
quelle
The only appropriate use of ngInit is for aliasing special properties of ngRepeat, as seen in the demo below. Besides this case, you should use controllers rather than ngInit to initialize values on a scope.
Es gibt eine einfache und saubere Möglichkeit, dies nur mit Anweisungen zu tun.
quelle
Sie können dies auch in einer Direktive tun, wenn Sie die vorherige Klasse entfernen und eine neue Klasse hinzufügen möchten
und in Ihrer Vorlage:
quelle
Sie haben es genau richtig, alles was Sie tun müssen, ist selectedIndex in Ihrem ng-Klick zu setzen.
Hier ist, wie ich eine Reihe von Schaltflächen implementiert habe, die die ng-Ansicht ändern und die Schaltfläche der aktuell ausgewählten Ansicht hervorheben.
und das in meinem Controller.
quelle
quelle
Ich habe den obigen Vorschlag von Zack Argyle verwendet, um dies zu erhalten, was ich sehr elegant finde:
CSS:
HTML:
quelle
Wenn Sie die Trennung von Bedenken bevorzugen, sodass die Logik zum Hinzufügen und Entfernen von Klassen auf dem Controller ausgeführt wird, können Sie dies tun
Regler
HTML
CSS
quelle
Ich kann nicht glauben, wie komplex jeder das macht. Das ist eigentlich sehr einfach. Fügen Sie dies einfach in Ihr HTML ein (keine Änderung der Direktive / Controller erforderlich - "bg-info" ist eine Bootstrap-Klasse):
quelle
für reaktive Formen -
HTML-Datei
TS-Datei
quelle