我正在开发一个项目,其中需要我使用md-menu构建的菜单将在同一个按钮上执行两个功能。
首先,一旦你点击按钮,就会发生一些事情,但是当你将鼠标悬停在按钮上时,它会打开下拉列表。
<md-menu-bar md-selected-nav-item="$ctrl.currentNavItem" md-no-ink-bar="$ctrl.landingPage" md-theme="reverse" aria-label="Main menu">
<md-menu ng-repeat="item in $ctrl.menuItems track by item.id">
<md-button ng-mouseover="$mdMenu.open()" ng-click="$ctrl.menuClick(item)">{{::item.name}}</md-button>
<md-menu-content ng-show="item.sub.length > 0">
<md-menu-item ng-repeat="subitem in item.sub">
<md-button ng-click="$ctrl.menuClick(subitem)">
{{::subitem.name}}
</md-button>
</md-menu-item>
</md-menu-content>
</md-menu>
这甚至是可能的,还是我试图解决甚至无法解决的问题?
答案 0 :(得分:1)
我不确定我是否正确理解你,但我认为你可以通过$timeout实现它,而不是直接在ng-mouseover中打开菜单。这只是一个选择。
Here你有一个有效的例子。
代码,仅供参考。有关完整的详细信息,请参阅plunker:
this.openMenu = function($mdMenu, ev) {
$timeout(function() {
if ($scope.openWhenHover) {
originatorEv = ev;
$mdMenu.open(ev);
}
}, 1000);
};
this.clickButton = function() {
$scope.clickedButton = true;
$scope.openWhenHover = false;
$timeout(function() {
$scope.clickedButton = false;
$scope.openWhenHover = true;
}, 1500);
};
希望有所帮助