图片:
的HTML:
// the ng-class allow the expansion of menu
<li class="{{menuItem.isActive}}" data-ng-repeat="menuItem in vm.menuItems" data-ng-class="{'': vm.expandedItem !== menuItem, 'expanded': vm.expandedItem === menuItem}" data-ng-click="vm.expandNav(menuItem, menuItem.url)" style="cursor: pointer;">
// click to go to next route
<a href="{{menuItem.url}}">
<span class="menu-item-parent">{{menuItem.name}}</span>
<b data-ng-if="menuItem.subMenu.length > 0 ">
<em class="fa" data-ng-class="{'fa fa-expand-o': vm.expandedItem !== menuItem, 'fa fa-collapse-o': vm.expandedItem === menuItem}">
</em>
</b>
</a>
展开菜单代码:
vm.expandNav = function (item, url) {
if (url == '') {
if (item !== vm.expandedItem) {
vm.expandedItem = item;
} else {
vm.expandedItem = null;
}
}
};
一些数据:
vm.menuItems = [
{ name: "Dashboard", url: "/", icon: "fa-home", isActive: "active" },
{ name: "Inbox", url: "/inserts/inbox", icon: "fa-inbox" },
{ name: "Graphs", url: "#", icon: "fa-bar-chart-o",
subMenu:
[
{ name: "Flot Charts", url: "/inserts/flot" },
{ name: "Morris Charts", url: "/inserts/morris" },
{ name: "Inline Charts", url: "/inserts/inline-charts" }
]
}
路线提供者“否则”这样做:
.otherwise({
templateUrl: '/app/html/inserts/dashboard.html',
controller: 'RouteCtrl'
});
场景[问题:]
我在收件箱页面上,单击图表菜单,在单击选项之前,我的视图恢复到默认仪表板页面。
我尝试使用 $locationChangeStart 来阻止默认值,但这会阻止菜单扩展,因此我可以看到子菜单。
我想要什么:要留在我单击的任何页面(在本例中为收件箱页面),单击任何其他具有子菜单(例如图形)的菜单项,并且不要让我的视图从当前所在的收件箱视图中移开。
预先感谢