我在Angular Material的sidenav的原生热键&esc'中遇到了麻烦。行动。按下esc后,框架将切换$mdSidenav('left/right').toggle()
。这是不可取的,因为我希望我的切换操作也可以切换其他操作。
我尝试过使用" pure"使用代码阻止操作的JavaScript:
document.onkeydown = function(e) {
if (e.which == 27) return false;
};
document.onkeyup = function(e) {
if (e.which == 27) return false;
};
失败了。我累了:
document.onkeydown = function(e) {
if (e.which == 27) {
break;
return false;
}
};
document.onkeyup = function(e) {
if (e.which == 27) {
break;
return false;
}
};
它也失败了,因为它不是合法的中断声明。
答案 0 :(得分:0)
您可以删除angular-material.js
中的第93行来禁用esc操作。
答案 1 :(得分:0)
遵循此方法:https://github.com/angular/material/issues/974#issuecomment-67784785
您可以在$scope.isOpen
上观看,当它关闭时,您可以检查(使用另一个范围标记)是否按下了“关闭”按钮。如果没有,您可以重新打开sidenav,用户将无法察觉它。
希望它有所帮助。