Tôi đang sử dụng định tuyến AngularUI và tôi muốn thực hiện ng-class="{active: current.state}"
nhưng tôi không chắc chắn cách phát hiện chính xác trạng thái hiện tại trong chỉ thị như thế này.Cách phát hiện trạng thái hiện tại trong chỉ thị
Trả lời
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
Kiểm tra góc-ui, cụ thể, kiểm tra tuyến đường: http://angular-ui.github.io/ui-utils/
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')}"
Còn trạng thái có thông số thì sao? –
https://github.com/angular-ui/ui-router/wiki/Quick-Reference#stateincludesstatename--params –
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');
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.
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