2013-06-20 40 views

Trả lời

110

Ngoài ra bạn có thể sử dụng ui-sref chủ động chỉ:

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

Hoặc lọc: "stateName" | isState & "stateName" | includedByState

0

Kiểm tra góc-ui, cụ thể, kiểm tra tuyến đường: http://angular-ui.github.io/ui-utils/

+0

Tôi đang cố kiểm tra trạng thái hiện tại, không nhất thiết phải là tuyến đường – Webnet

142

Cập nhật:

Câu trả lời này là cho một phiên bản cũ hơn nhiều Ui-Router. Đối với các bản phát hành mới hơn (0.2.5+), vui lòng sử dụng chỉ thị trợ giúp ui-sref-active. Chi tiết here.


gốc trả lời:

Bao gồm các dịch vụ nhà nước $ trong điều khiển của bạn. Bạn có thể gán dịch vụ này cho một thuộc tính trên phạm vi của bạn.

Một ví dụ:

$scope.$state = $state; 

Sau đó, để có được tình trạng hiện tại trong các mẫu của bạn:

$state.current.name 

Để kiểm tra xem tình trạng là hiện nay đang hoạt động:

$state.includes('stateName'); 

Phương pháp này lợi nhuận đúng nếu trạng thái được bao gồm, ngay cả khi nó là một phần của trạng thái lồng nhau. Nếu bạn ở trạng thái lồng nhau, user.details và bạn đã kiểm tra $state.includes('user'), nó sẽ trả về giá trị true.

Trong ví dụ lớp học của bạn, bạn muốn làm điều gì đó như thế này:

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

Còn trạng thái có thông số thì sao? –

+3

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

22

Nếu bạn đang sử dụng ui-router, hãy thử $ state.is();

Bạn có thể sử dụng nó như vậy:

$state.is('stateName');

Documentation

0

Việc sử dụng ui-sref chủ động chỉ thị mà làm việc đối với tôi là:

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

như được tìm thấy here trong nhận xét có nhãn "tgrant59 đã nhận xét vào ngày 31 tháng 5 năm 2016".

Tôi đang sử dụng angular-ui-router v0.3.1.

Các vấn đề liên quan