我在侧边栏中有菜单中的一些项目。这是侧栏的代码
<div class="navbar-default sidebar" role="navigation">
<div class="sidebar-nav navbar-collapse">
<ul class="nav in" id="side-menu">
<li ui-sref-active="sideActive">
<md-button class="md-raised md-warn md-hue-2" ui-sref="dashboard.home"><i class="fa fa-dashboard fa-fw"></i> Dashboard</md-button>
</li>
<li ui-sref-active="sideActive">
<md-button class="md-raised md-warn md-hue-2" ui-sref="dashboard.userManagement"><i class="fa fa-user"></i> User </md-button>
</li>
<li ui-sref-active-eq="sideActive" >
<md-button ng-click="check(4)" class="md-raised md-warn md-hue-2" ui-sref="dashboard.orderManagement.manage"><i class="fa fa-file-text-o"></i> Order Management<span class="fa arrow"></span></md-button>
<ul class="orderNav nav nav-second-level" collapse="collapseVar!=4">
<li ng-class="{orderActive: $state.includes('order_management')}">
<md-button width="2" ui-sref="dashboard.orderManagement.manage" class="md-raised md-warn md-hue-2">Manage Orders</md-button>
</li>
<li ng-class="{orderActive: $state.includes('order_management')}">
<md-button width="2" ui-sref="dashboard.orderManagement.payment.transfers" class="md-raised md-warn md-hue-2">Payment</md-button>
</li>
</ul>
</li>
<li ui-sref-active="sideActive">
<md-button class="md-raised md-warn md-hue-2" ui-sref="dashboard.artManagement"><i class="fa fa-picture-o"></i> Art Management</md-button>
</li>
</ul>
</div>
<!-- /.sidebar-collapse -->
在上面的代码中,对于订单管理,存在子菜单项,并且在子菜单项中,对于子项之一,存在另外的子项(将在主视图而不是侧栏中显示)。
例如:1)订单管理 - > I)付款II)退款
|
i)转移ii)收入
当视图处于收入或转移或付款时,订单管理应该是活动的。我正在获取这样的URL http://localhost:8080/admin/#/dashboard/order_management/payment/transfer
以进行转移。但是对于那些按钮我无法设置活动类,当点击转移时
这是州代码之一。
.state('dashboard.orderManagement.manage', {
templateUrl: 'submodules/order_management/manageOrder.html',
url: '/manage_order',
controller: 'orderCtrl',
resolve: {
loadMyFiles: function($ocLazyLoad) {
return $ocLazyLoad.load({
name: 'abcd',
files: [
'submodules/order_management/controller.js',
'scripts/services.js'
]
})
}
}
})
如何做到这一点,任何人都可以帮助我
答案 0 :(得分:6)
您在列表的子元素的ng-class属性中给出了错误的状态。尝试使用以下代码。
<div class="navbar-default sidebar" role="navigation">
<div class="sidebar-nav navbar-collapse">
<ul class="nav in" id="side-menu">
<li ui-sref-active="sideActive">
<md-button class="md-raised md-warn md-hue-2" ui-sref="dashboard.home"><i class="fa fa-dashboard fa-fw"></i> Dashboard</md-button>
</li>
<li ui-sref-active="sideActive">
<md-button class="md-raised md-warn md-hue-2" ui-sref="dashboard.userManagement"><i class="fa fa-user"></i> User </md-button>
</li>
<li ng-class="{orderActive: $state.includes('dashboard.orderManagement')}" >
<md-button ng-click="check(4)" class="md-raised md-warn md-hue-2" ui-sref="dashboard.orderManagement.manage"><i class="fa fa-file-text-o"></i> Order Management<span class="fa arrow"></span></md-button>
<ul class="orderNav nav nav-second-level" collapse="collapseVar!=4">
<li ui-sref-active="sideActive">
<md-button width="2" ui-sref="dashboard.orderManagement.manage" class="md-raised md-warn md-hue-2">Manage Orders</md-button>
</li>
<li ui-sref-active="sideActive">
<md-button width="2" ui-sref="dashboard.orderManagement.payment.transfers" class="md-raised md-warn md-hue-2">Payment</md-button>
</li>
<li ui-sref-active="sideActive">
<md-button width="2" ui-sref="dashboard.orderManagement.pixum" class="md-raised md-warn md-hue-2">Pixum</md-button>
</li>
</ul>
</li>
<li ui-sref-active="sideActive">
<md-button class="md-raised md-warn md-hue-2" ui-sref="dashboard.artManagement"><i class="fa fa-picture-o"></i> Art Management</md-button>
</li>
</ul>
</div>
控制器代码:
$stateProvider.state('dashboard.orderManagement', {
url: '/order_management',
abstract: true,
template: '<div ui-view></div>'
})
.state('dashboard.orderManagement.manage', {
templateUrl: 'submodules/order_management/manageOrder.html',
url: '/manage_order',
controller: 'orderCtrl',
resolve: {
loadMyFiles: function($ocLazyLoad) {
return $ocLazyLoad.load({
name: 'artifuAdmin',
files: [
'submodules/order_management/controller.js',
'scripts/services.js'
]
})
}
}
})
.state('dashboard.orderManagement.pixum', {
//content
});
答案 1 :(得分:1)
使用过滤器添加类解决了我的问题。
例如:<li ng-class="{sideActive: ('dashboard.orderManagement' | includedByState)}" >
<ul class="nav in" id="side-menu">
<li ui-sref-active="sideActive">
<md-button class="md-raised md-warn md-hue-2" ui-sref="dashboard.home"><i class="fa fa-dashboard fa-fw"></i> Dashboard</md-button>
</li>
<li ui-sref-active="sideActive">
<md-button class="md-raised md-warn md-hue-2" ui-sref="dashboard.userManagement"><i class="fa fa-user"></i> User Management</md-button>
</li>
<li ng-class="{sideActive: ('dashboard.orderManagement' | includedByState)}" >
<md-button ng-click="check(4)" class="md-raised md-warn md-hue-2" ui-sref="dashboard.orderManagement.manage"><i class="fa fa-file-text-o"></i> Order Management<span class="fa arrow"></span></md-button>
<ul class="orderNav nav nav-second-level" collapse="collapseVar!=4">
<li ui-sref-active="orderActive">
<md-button width="2" ui-sref="dashboard.orderManagement.manage" class="md-raised md-warn md-hue-2">Manage Orders</md-button>
</li>
<li ng-class="{orderActive: ('dashboard.orderManagement.payment' | includedByState)}">
<md-button width="2" ui-sref="dashboard.orderManagement.payment.transfers" class="md-raised md-warn md-hue-2">Payment</md-button>
</li>
</ul>
</li>
<li ui-sref-active="sideActive">
<md-button class="md-raised md-warn md-hue-2" ui-sref="dashboard.artManagement"><i class="fa fa-picture-o"></i> Art Management</md-button>
</li>
</ul>