Javascript 建议快速解决方法,防止md菜单关闭md菜单项';点击
我试图阻止Javascript 建议快速解决方法,防止md菜单关闭md菜单项';点击,javascript,angularjs,angular-material,Javascript,Angularjs,Angular Material,我试图阻止md菜单关闭md菜单项的单击。我在angular material的menuServiceProvider中通过以下修复实现了它 在中更改第286行将允许此操作 if (!target.hasAttribute('disabled') && !target.hasAttribute('md-menu-disable-close') && (!closestMenu || closestMenu == opts.parent[0])) { close
md菜单
关闭md菜单项
的单击。我在angular material的menuServiceProvider
中通过以下修复实现了它
在中更改第286行将允许此操作
if (!target.hasAttribute('disabled') && !target.hasAttribute('md-menu-disable-close') &&
(!closestMenu || closestMenu == opts.parent[0])) { close(); }
但是,我们正在寻找一种替代方法 我找到了解决这个问题的最佳方法,因为md菜单组件从具有以下属性之一的元素中查找单击['ng-click',ng href',ui-sref',],我们可以创建自己版本的ng-click,并将其用于md菜单内的任何单击事件,如下所示:
app.directive('myClick', function ($parse, $rootScope) {
return {
restrict: 'A',
compile: function ($element, attrs) {
var fn = $parse(attrs.myClick, null, true);
return function myClick(scope, element) {
element.on('click', function (event) {
var callback = function () {
fn(scope, { $event: event });
};
scope.$apply(callback);
})
}
}
}
})
…在html中
<md-menu>
<md-button>Open Menu</md-button>
<md-menu-content>
<md-button my-click="doSomething()">Click me without closing the menu</button>
</md-menu-content>
</md-menu>
打开菜单
单击我而不关闭菜单
有一个attibute,您可以将它添加到md菜单项
元素中,该元素由angular js提供,名为md阻止菜单关闭
,它将阻止在其任何项目点击时关闭md菜单
。
有关更多详细信息:
谢谢。我也面临着同样的问题-单击事件触发时菜单项关闭,我在菜单内容中添加了md prevent menu close=“md prevent menu close”,我曾在其中使用ng click、ui sref等解决了此问题。 下面是示例代码片段
<md-menu>
<md-button class="md-icon-button">
<i class="material-icons md-notification-badge" >notifications</i>
</md-button>
<md-menu-content class="alert-menu" width="6" >
<md-menu-item ng-repeat="item in $ctrl.myAlertsNotifications">
<div><i class="material-icons">{{item.icon}}</i></div>
<i class="material-icons" ng-click="$ctrl.deleteAlerts(item.MessageNumber);" md-prevent-menu-close="md-prevent-menu-close">delete</i>
</md-menu-item>
</md-menu-content>
</md-menu>
通知
{{item.icon}
删除
单击后需要打开菜单您可以简单地通过单击尝试:md-prevent-menu-close=“md-prevent-menu-close”
角度为1.x
<i class="material-icons"
ng-click="$ctrl.deleteAlerts(item.MessageNumber)"
md-prevent-menu-close="md-prevent-menu-close">
delete
</i>
删除
和角度2.x或角度6
<i class="material-icons"
(click)="deleteAlerts(item.MessageNumber)"
md-prevent-menu-close="md-prevent-menu-close">
delete
</i>
删除