【发布时间】:2016-01-28 11:16:30
【问题描述】:
我正在使用 Angular Material 菜单栏来显示菜单和每个菜单项下的子菜单。我添加了 ng-click 事件来打开子菜单。但是菜单仍然在鼠标悬停在父菜单项上时打开。不仅如此,因为我有两个子菜单,对于第一个子菜单项,子菜单在鼠标悬停时打开,但第二个子菜单在鼠标悬停时未打开。我如何在鼠标悬停时阻止此菜单打开。我试图在父菜单项上的 mouseenter 上停止事件传播。但是在打开第二个子菜单时,第一个子菜单并没有被隐藏。请帮我解决一下。
<div ng-controller="DemoBasicCtrl as ctrl" ng-cloak="" class="menuBardemoBasicUsage" ng-app="MyApp">
<md-menu-bar>
<md-menu>
<button ng-click="$mdOpenMenu()">
File
</button>
<md-menu-content>
<md-menu-item>
<md-menu>
<md-button ng-click="$mdOpenMenu()">New</md-button>
<md-menu-content>
<md-menu-item><md-button ng-click="ctrl.sampleAction('New Document', $event)">Document</md-button></md-menu-item>
</md-menu-content>
</md-menu>
</md-menu-item>
<md-menu-item>
<md-menu>
<md-button ng-click="$mdOpenMenu()">New</md-button>
<md-menu-content>
<md-menu-item><md-button ng-click="ctrl.sampleAction('New Document', $event)">Document</md-button></md-menu-item>
</md-menu-content>
</md-menu>
</md-menu-item>
</md-menu-content>
</md-menu>
</md-menu-bar>
我现有的演示代码位于demo。
【问题讨论】:
-
你粘贴了完整的控制器代码吗?
-
实际上根据angular material doc,控制器上的那些代码与演示相关。但是这些对于使用角度材料菜单栏本身并不是必需的。我的意思是我们可以忽略演示中的那些过滤器、配置和控制器。
-
您最终找到解决方案了吗?
-
不,还没有运气。等待角材料修复它。
-
您应该在子菜单而不是父菜单上的 mouseenter 上停止事件传播。
标签: angularjs submenu menubar angular-material