【问题标题】:Angular material open menu in a single clickAngular 材质一键打开菜单
【发布时间】:2020-04-12 00:43:35
【问题描述】:

我在一个组件中有 2 个有角度的材质图标,每个都有一个菜单 - 例如 menu1menu2。当我单击 menu1 图标时,它将打开 menu1 列表。然后,当我单击 menu2 图标时,我需要关闭 menu1 列表并打开 menu2。但是现在我需要单击两次才能执行此活动。第一次单击关闭 menu1,只有第二次单击打开 menu2。如何使用mat-menu实现第二个菜单的一键打开?

菜单1 html

<button mat-icon-button [matMenuTriggerFor]="menu1" aria-label="Example icon-button with a menu">
  <mat-icon>more_vert</mat-icon>
</button>
<mat-menu #menu1="matMenu">
  <button mat-menu-item>
    <mat-icon>dialpad</mat-icon>
    <span>Redial</span>
  </button>
</mat-menu>

菜单2 html

<button mat-icon-button [matMenuTriggerFor]="menu2" aria-label="Example icon-button with a menu">
      <mat-icon>more_vert</mat-icon>
    </button>
    <mat-menu #menu2="matMenu">
      <button mat-menu-item>
        <mat-icon>dialpad</mat-icon>
        <span>Redial</span>
      </button>
    </mat-menu>

示例呈现angular material sample。我的问题是如何在一个短的时间内打开和关闭菜单?

【问题讨论】:

    标签: javascript angular angular-material


    【解决方案1】:

    菜单1 html

    <button mat-icon-button [matMenuTriggerFor]="menu1" aria-label="Example icon-button with a menu">
          <mat-icon>more_vert</mat-icon>
        </button>
        <mat-menu (closed)="menuOneClosed()" #menu1="matMenu">
          <button mat-menu-item>
            <mat-icon>dialpad</mat-icon>
            <span>Redial</span>
          </button>
        </mat-menu>
    

    菜单2 html

    <button mat-icon-button [matMenuTriggerFor]="menu2" aria-label="Example icon-button with a menu">
          <mat-icon>more_vert</mat-icon>
        </button>
        <mat-menu #menu2="matMenu">
          <button mat-menu-item>
            <mat-icon>dialpad</mat-icon>
            <span>Redial</span>
          </button>
        </mat-menu>
    

    组件实例

    @ViewChild(MatMenuTrigger) menu2: MatMenuTrigger;
    
    menuOneClosed(){
        this.meu2.openMenu();
    }
    

    【讨论】:

    • 您好兄弟,谢谢您的回复,在您的回答中,当我们点击menu1时,menu2会打开对吗?我不想要那种行为。当我们单击 menu2 时,menu2 应该打开,反之亦然。
    猜你喜欢
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 2017-07-01
    相关资源
    最近更新 更多