讓我們說的URL樹如下:
app (for home page) -> app.products -> app.products.category
用法:
<li ui-sref-active="active">
<a ui-sref="app.products">Products</a>
</li>
現在,當你按products
:只有產品將被激活。
如果您按category
:產品和類別都將處於活動狀態。
如果您只想按類別激活類別,則應在產品上使用:ui-sref-active-eq
,這意味着只有它是活動的而不是孩子。
在app.js正確使用:
angular.module('confusionApp', ['ui.router'])
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
// route for the home page
.state('app', {
url:'/',
views: { ... }
})
// route for the aboutus page
.state('app.products', {
url:'products',
views: { ... }
})
// route for the contactus page
.state('app.products.category', {
url:'category',
views: { ... }
})
$urlRouterProvider.otherwise('/');
});
您是否在範圍中特別提供了'$ state',例如'$ rootScope。$ state = $ state'? – jvannistelrooy
@jvannistelrooy是的。通常我不會在'$ rootScope'中放入任何東西,但是這是一個例外。 – Rifat
感謝您發表該答案。完全適合我的使用。我最終只是將include方法映射到我的控制器的作用域('scope.includes = $ state.includes'),而不是附加整個'$ state'。 – richleland