【问题标题】:How to disable built-in keypress actions in Angular Material?如何禁用 Angular Material 中的内置按键操作?
【发布时间】:2015-03-12 00:48:36
【问题描述】:

我在使用 Angular Material 的 sidenav 的本机热键“esc”操作时遇到问题。当按下 esc 时,框架将切换$mdSidenav('left/right').toggle()。这是不可取的,因为我希望我的切换操作也切换其他操作。

我尝试使用“纯”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;
  }
};

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

【问题讨论】:

    标签: javascript angularjs angular-material


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      按照这个方法:https://github.com/angular/material/issues/974#issuecomment-67784785

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

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-04
        • 1970-01-01
        • 1970-01-01
        • 2020-11-19
        相关资源
        最近更新 更多