2013-06-20 11 views

Antwort

110

Sie können auch ui-sref aktive Direktive verwenden:

In Ihrer Klasse Beispiel, würden Sie etwas tun "stateName" | isState & "stateName" | includedByState

142

Update:

Diese Antwort war für eine viel ältere Version von Ui-Router. Für die neueren Releases (0.2.5+) verwenden Sie bitte die Helfer-Direktive ui-sref-active. Details here.


Ursprüngliche Antwort:

Fügen Sie den $ Staatsdienst in der Steuerung. Sie können diesen Service einer Eigenschaft in Ihrem Bereich zuweisen.

Ein Beispiel:

$scope.$state = $state; 

dann den aktuellen Zustand in den Vorlagen zu erhalten:

$state.current.name 

Um zu überprüfen, ob ein Zustandsstrom aktiv ist:

kehrt
$state.includes('stateName'); 

Diese Methode true, wenn der Status enthalten ist, auch wenn es Teil eines verschachtelten Status ist. Wenn Sie sich in einem verschachtelten Zustand befinden, user.details, und Sie auf $state.includes('user') überprüft haben, wird der Wert true zurückgegeben.

<ul> 
    <li ui-sref-active="active" class="item"> 
    <a href ui-sref="app.user({user: 'bilbobaggins'})">@bilbobaggins</a> 
    </li> 
    <!-- ... --> 
</ul> 

oder Filter:

ng-class="{active: $state.includes('stateName')}" 
+3

Was ist für Staaten, die Parameter haben? –

+3

https://github.com/angular-ui/ui-router/wiki/Quick-Reference#stateincludesstatename--params –

22

Wenn Sie den UI-Router verwenden, versuchen Sie $ state.is();

Sie können es wie so verwenden:

$state.is('stateName');

Documentation

0

Die Verwendung von ui-sref aktiven-Direktive, die für mich gearbeitet wurde:

<li ui-sref-active="{'active': 'admin'}"> 
    <a ui-sref="admin.users">Administration Panel</a> 
</li> 

als gefunden here unter dem Kommentar mit der Aufschrift "tgrant59 am 31. Mai 2016 kommentiert".

Ich benutze angular-ui-Router v0.3.1.

Verwandte Themen