УГЛОВОЙ — Как сохранить раскрывающийся список «Выбрать» открытым при открытии мат-меню?

#javascript #css #angular #angular-material #material-ui

Вопрос:

У меня есть mat-select компонент, содержащий пользовательские параметры (с дополнительным меню «Установить по умолчанию»).:

 <mat-form-field appearance="fill">
  <mat-label>Favorite food</mat-label>
  <mat-select>
    <mat-option *ngFor="let food of foods" [value]="food.value">
      {{food.viewValue}}
      <button mat-icon-button [matMenuTriggerFor]="menu" aria-label="Example icon-button with a menu">
        <mat-icon>more_vert</mat-icon>
      </button>
      <mat-menu #menu="matMenu">
        <button mat-menu-item>
          <span>Set as default</span>
        </button>
      </mat-menu>
    </mat-option>
  </mat-select>
</mat-form-field>
 

Однако, когда я открываю меню, список опций выбора исчезает, и я вижу только всплывающее окно «Установить по умолчанию».

Можем ли мы каким-то образом показать «Установить по умолчанию» поверх списка опций выбора, или это невозможно в материале Angular?

Это ссылка на Stackblitz с кодом: https://stackblitz.com/edit/angular-material-playground-hcw1wo?file=src/app/app.component.html

Ответ №1:

Вы можете попробовать мат-меню для вложенных пунктов меню:

 <button mat-raised-button [matMenuTriggerFor]="main_menu">Favorite food</button>
<mat-menu #main_menu="matMenu">
  <ng-container *ngFor="let food of foods">
    <button mat-menu-item [matMenuTriggerFor]="sub_menu">{{ food.value }}</button>
    <mat-menu #sub_menu="matMenu">
       <button mat-menu-item>Set as default</button>
    </mat-menu>
  </ng-container>
</mat-menu>
 

Или попробуйте mat-optgroup mat-select для справки : https://material.angular.io/components/select/examples