2013-06-20 12 views

Odpowiedz

110

Również można użyć ui-sref aktywną dyrektywy:

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

lub filtrów: "stateName" | isState & "stateName" | includedByState

142

Aktualizacja:

Ta odpowiedź była na o wiele starszego wydania Ui-Router. W przypadku nowszych wersji (0.2.5+), użyj dyrektywy pomocniczej ui-sref-active. Szczegóły here.


Original Odpowiedź:

Dołącz Państwowej Służby dolarów w kontrolerze. Możesz przypisać tę usługę do właściwości w swoim zasięgu.

Przykład:

$scope.$state = $state; 

Następnie, aby uzyskać aktualny stan w szablonach:

$state.current.name 

Aby sprawdzić, czy stan jest obecny aktywny:

$state.includes('stateName'); 

Ta metoda zwraca true, jeśli stan jest zawarty, nawet jeśli jest częścią zagnieżdżonego stanu. Jeśli byłeś w stanie zagnieżdżonym, user.details, a sprawdziłeś pod kątem $state.includes('user'), zwróciłaby ona wartość true.

W przykładzie klasy, można by zrobić coś takiego:

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

Co do stanów, które mają parametry? –

+3

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

22

Jeśli używasz ui-routera, spróbuj $ state.is();

Można go używać tak:

$state.is('stateName');

Documentation

0

Zastosowanie ui-sref aktywnego dyrektywy że pracował dla mnie było:

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

jako znaleziono here pod komentarzem oznaczonym "tgrant59 skomentował 31 maja 2016 r.".

Używam routera kątowego v0.3.1.

Powiązane problemy