2013-06-20 14 views

cevap

110

Ayrıca ui-sref aktif direktifini kullanabilirsiniz "stateName" | includedByState

142

Güncelleme:

Bu cevap Ui-Router çok daha eski sürüm için oldu. Daha yeni sürümleri (0.2.5+) için yardımcı yönergesini ui-sref-active kullanınız. here Ayrıntılar.


Orjinal Cevap:

controller içerisinde $ devlet hizmetini ekleyin. Bu hizmeti kapsamınızdaki bir mülke atayabilirsiniz.

Bir örnek:

$state.includes('stateName'); 

Bu yöntem döndürür: Bir devlet geçerli aktifse

$state.current.name 

kontrol etmek için:

$scope.$state = $state; 

Sonra şablonları mevcut durumunu almak için gerçek devlet bu iç içe geçmiş bir devletin parçası olsa bile dahil olup olmadığını. İç içe bir halde, user.details vardı ve $state.includes('user') için işaretli ise, bu doğru dönecekti. Sınıf örnekte

, böyle bir şey yapacağını:

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

Ya filtreleri: "stateName" | isState &

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

Parametre olan eyaletler hakkında ne diyorsunuz? –

+3

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

22

Eğer ui yönlendirici kullanıyorsanız, $ state.is();

Öyle gibi kullanabilirsiniz:

$state.is('stateName');

Documentation

0

benim için çalıştı ui-sref aktif yönergesi kullanımı oldu:

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

olarak etiketli yorumun altında here bulunan "tgrant59 31 Mayıs 2016 yorumladı".

ben açısal-ui-yönlendirici v0.3.1 kullanıyorum.