代码之家  ›  专栏  ›  技术社区  ›  Igor

如何防止在按键导航(选项卡)时关闭“角度/材质材质”菜单?

  •  6
  • Igor  · 技术社区  · 7 年前

    我读过 How to prevent angular material mat-menu from closing? ,这解释了如何防止角材质材质材质菜单在单击时关闭。

    然而: 当我按下制表器来改变焦点时,我似乎找不到方法来阻止mat菜单关闭。 .

    以stackblitz为例: https://stackblitz.com/edit/angular-ij6jbx : 它可以适当地防止 mat-menu 从结束 什么时候 输入字段接收焦点 通过鼠标单击 . 另一方面:如果我按“制表”来改变焦点和 username -输入字段接收焦点,菜单关闭。

    如果可能的话,我想知道如何防止这种行为。我试着加入 $event.stopPropagation(); (input) ,但它似乎什么也没做。

    显然,有角度的开发人员已经根据 https://github.com/angular/material2/issues/2612 . 遗憾的是,在问题/功能请求的末尾似乎没有一个正确的解决方案,也没有关于状态的提示。

    附笔.: 我知道,现在的密码不漂亮也不聪明。我打算把它重构成自己的指令,一旦它对点击和按键都起作用。

    1 回复  |  直到 7 年前
        1
  •  5
  •   yurzui    7 年前

    我会抓住的 keydown 事件如下:

    <mat-menu ...>
      <form (keydown.tab)="$event.stopPropagation()">
    

    Forked Stackblitz

    我还要补充一点 tabindex="-1" 所有清除按钮