Я новичок в Angular 5 и только начал его изучать.
Недавно я пытался создать строку меню с несколькими меню для своего приложения, используя материал Angular 5.
Меню будет запускаться / открываться при вводе мыши и закрываться, когда мышь покидает меню.
Моя проблема в том, что каждый раз, когда мышь наводит курсор на первое меню, она загружает пункты меню второго меню.
Вот скриншот проблемы:
Вот мои коды:
mainmenu.component.html:
<div>
<button mat-button [matMenuTriggerFor]="menu1"
(mouseenter)="openMyMenu()">Trigger1</button>
<mat-menu #menu1="matMenu" overlapTrigger="false">
<span (mouseleave)="closeMyMenu()">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</span>
</mat-menu>
</div>
<div>
<button mat-button [matMenuTriggerFor]="menu2"
(mouseenter)="openMyMenu()">Trigger2</button>
<mat-menu #menu2="matMenu" overlapTrigger="false">
<span (mouseleave)="closeMyMenu()">
<button mat-menu-item>Item 3</button>
<button mat-menu-item>Item 4</button>
</span>
</mat-menu>
</div>
mainmenu.component.ts:
import { Component, OnInit, ViewChild } from '@angular/core';
import {MatMenuTrigger} from '@angular/material'
@Component({
selector: 'app-mainmenu',
templateUrl: './mainmenu.component.html',
styleUrls: ['./mainmenu.component.css']
})
export class MainmenuComponent implements OnInit {
@ViewChild(MatMenuTrigger) matMenuTrigger: MatMenuTrigger;
constructor() { }
ngOnInit() {
}
openMyMenu() {
this.matMenuTrigger.openMenu();
}
closeMyMenu() {
this.matMenuTrigger.closeMenu();
}
}
Я тоже пробовал это: @ViewChild('menu1') matMenuTrigger: MatMenuTrigger;
, но получаю ошибки.
Мы очень ценим ваше мнение и советы!
Спасибо,
Артанис Зератул
Ссылки:
- https://coursetro.com/posts/code/113/How-to-Build-an-Angular-5-Material-App
- Как создать меню дизайна материалов (mat-menu ) скрыть при нажатии кнопки мыши