Директива меню не обязательна. Вы можете выставить дочерний элемент MatMenu
и ссылаться на него как на свойство содержащего компонента и использовать его напрямую с директивой MatMenuTrigger
:
menu.component.ts:
@Component({
selector: 'sq-menu',
templateUrl: './menu.component.html',
})
export class MenuComponent {
@ViewChild('menu') matMenu: MatMenu;
}
menu.component.html:
<mat-menu #menu="matMenu">
<ng-content></ng-content>
</mat-menu>
Использование:
<button mat-raised-button [matMenuTriggerFor]="menu.matMenu">home</button>
<sq-menu #menu>
<button mat-button>
Item1
</button>
</sq-menu>
StackBlitz