Angular JS: "aktive" Klasse für Menüeinträge, die von einem Controller erstellt wurden

8

Ich verwende einen JSON-Dienst, um Menüelemente (Links) aufzulisten. Beim Navigieren der verschiedenen Routen / Seiten möchte ich eine "aktive" Klasse zu dem Link hinzufügen, der gerade aktiv ist (d. H. Die Seite, auf der sich der Benutzer befindet).

Ich habe diese JSFiddle als Ausgangspunkt verwendet: Ссылка

Ich habe hier auch einige Antworten auf Stackoverflow gefunden, aber alle sind ähnlich wie die obige Lösung.

Aber diese Lösung funktioniert nicht, wenn die Links über ng-repeat generiert werden:

%Vor%

Es scheint so, als ob die Anweisung aufgerufen wird, bevor der Controller die Links hinzufügt.

Gibt es eine Möglichkeit, das zu umgehen?

    
Adam Gerthel 15.05.2013, 19:26
quelle

4 Antworten

1

Ein Stapelprogrammierungskonzept ist eine Trennung von Bedenken. Ich persönlich mag es nicht, Logik oder Vergleiche in meinen Ansichten zu behalten. Ich würde es vorziehen, Geschäftslogik und Vergleiche im Javascript

zu behalten

HTML

%Vor%

Javascript

%Vor%     
Jon Harding 10.03.2014, 19:12
quelle
5

HTML zum Wiederholen von Links

%Vor%

Javascript

%Vor%

Dadurch werden Links eins / zwei / drei erzeugt, wobei drei in roter Farbe hervorgehoben sind. Hier ist ein Spiel: Ссылка

    
Mathew Berg 16.05.2013 01:31
quelle
2

Als Autor deines Ausgangspunktes habe ich die Geige aktualisiert, also sollte es jetzt für deine dynamischen URLs funktionieren:).

%Vor%

Ссылка

Das Problem ist, dass die Direktive das Attribut href ausliest, bevor es interpoliert wird. Ich habe es einfach so geändert, dass der href ausgelesen wird, nachdem er interpoliert wurde.

    
kfis 10.08.2013 10:36
quelle
0

Ng-Klasse wurde dafür gemacht. Sehen Sie sich die Kommentare auf der Angular Docs-Seite für ng-class an, da diese nicht gut dokumentiert sind.

    
Jason 15.05.2013 21:43
quelle

Tags und Links