Как открыть mat-menu программно?
Im пытается вызвать открытие меню при нажатии элемента mat-nav-list.
HTML-код
<mat-nav-list>
<mat-list-item (click)="onOpenMenu(menu)" *ngFor="let i of data">
<div mat-line>
{{ i.name }}
</div>
<p mat-line>
{{ i.email }}
</p>
<button mat-icon-button [matMenuTriggerFor]="menu">
<mat-icon>more_vert</mat-icon>
</button>
</mat-list-item>
<mat-menu #menu="matMenu">
<button mat-menu-item>View profile</button>
<button mat-menu-item>Add contact</button>
</mat-menu>
</mat-nav-list>
TS
onOpenMenu(menu: any): void {
// menu doesn't have any openMenu() function
// which is of course not a trigger object but a menu itself.
console.log(menu);
}
Я пытался посмотреть на это выпуск на github что ближе к моей ситуации. но в моем случае у меня есть динамический список пунктов, которые я хотел открыть меню каждый клик.
1 ответов
вам нужно добраться до MatMenuTrigger
экземпляр [matMenuTriggerFor]
элемент
#menuTrigger="matMenuTrigger" [matMenuTriggerFor]="menu"
здесь
#menuTrigger
является эталонной переменной шаблонаmatMenuTrigger
isexportAs
собственностьMatMenuTrigger
метаданных
а затем просто позвоните
(click)="menuTrigger.openMenu()"
подробнее о ссылочной переменной шаблона вот!--9-->