简体   繁体   English

角度7 +角度材质。 如何在扩展的菜单下拉菜单中切换图标?

[英]Angular 7 + Angular Material. How to toggle icon on mat-menu dropdown expanded?

I've got a problem with toggling icon on expanded <mat-menu> . 我在扩展<mat-menu>上切换图标时遇到问题。
For expanding dropdown I'm using [matMenuTriggerFor]="menu" . 为了扩展下拉菜单,我使用了[matMenuTriggerFor]="menu"
Dropdown is expanding and hiding when I click outside the dropdown menu. 当我在下拉菜单之外单击时,下拉菜单会扩展并隐藏。

Problem : 问题:
I can't figure out how I can toggle <mat-icon>expand_more</mat-icon> to <mat-icon>expand_less</mat-icon> when dropdown is shown and in opposite way when dropdown is hidden. 我不能找出如何可以切换<mat-icon>expand_more</mat-icon><mat-icon>expand_less</mat-icon>时显示下拉菜单,并以相反的方式,当下拉是隐藏的。
I've noticed that [aria-expanded]="true" attribute is present on one of my divs when dropdown is shown. 我注意到显示下拉列表时,我的一个div上存在[aria-expanded]="true"属性。 Whole attribute disappears on closing dropdown. 整个属性在关闭下拉列表中消失。
Can you help me achieve toggling icon on dropdown menu? 您能帮我实现下拉菜单上的切换图标吗?

As you can see there is {{iconExpand}} interpolation where I would like to provide icon name on toggling dropdown. 如您所见,在{{iconExpand}}插值中,我想在切换下拉菜单中提供图标名称。

<div class="NavbarUser" #menuTrigger="matMenuTrigger" [matMenuTriggerFor]="menu">
  <tl-mat-button [noPadding]="true" [colorTheme]="'linkGrey'"
  class="NavbarUserName tl-mat-padding-r-base">
    {{ input.user.fullName }}
  </tl-mat-button>
  <tl-mat-image-thumbnail [size]="'small'" [thumbnailUrl]="input.user.thumbnailUrl">
  </tl-mat-image-thumbnail>

  <mat-icon class="Profile__DropdownArrow--Icon">{{iconExpand}}</mat-icon>
  <mat-menu #menu="matMenu">
    <div>
      <hr/>
    </div>
    <button mat-menu-item *ngFor="let profileButton of input.dropDownPaths"
    [routerLink]="profileButton.relativeUrl">
      <img class="Profile__Dropdown--Icons" src="{{profileButton.iconUrl}}" />
      <span class="Profile__Dropdown--Text">{{profileButton.title}}</span>
    </button>
  </mat-menu>
</div>

Just check the menuOpen property: 只需检查menuOpen属性:

<div #menuTrigger="matMenuTrigger" [matMenuTriggerFor]="menu">
  <mat-icon>
    {{menuTrigger.menuOpen ? 'expand_less' : 'expand_more'}}
  </mat-icon>
</div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM