如何禁用Angular Material中的内置按键操作?

时间:2015-03-12 00:48:37

标签: javascript angularjs angular-material

我在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;
  }
};

它也失败了,因为它不是合法的中断声明。

2 个答案:

答案 0 :(得分:0)

您可以删除angular-material.js中的第93行来禁用esc操作。

答案 1 :(得分:0)

遵循此方法:https://github.com/angular/material/issues/974#issuecomment-67784785

您可以在$scope.isOpen上观看,当它关闭时,您可以检查(使用另一个范围标记)是否按下了“关闭”按钮。如果没有,您可以重新打开sidenav,用户将无法察觉它。

希望它有所帮助。