javascript - 如何双击打开角垫菜单?
问题描述
单击两次触发元素时,我想打开 mat-menu。目前它在第一次点击后打开,然后在另一个之后关闭。
<div [matMenuTriggerFor]="menu" #menuTrigger="matMenuTrigger">Trigger element</div>
<mat-menu #menu="matMenu">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
尝试将 (dblclick)="menuTrigger.OpenMenu()" 添加到触发元素。
<div (dblclick)="menuTrigger.OpenMenu()" [matMenuTriggerFor]="menu" #menuTrigger="matMenuTrigger">Trigger element</div>
<mat-menu #menu="matMenu">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
尝试将 (focus)="menuTrigger.openMenu()" 添加到触发元素。
<div (focus)="menuTrigger.openMenu()" [matMenuTriggerFor]="menu" #menuTrigger="matMenuTrigger">Trigger element</div>
<mat-menu #menu="matMenu">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
尝试从 component.ts 打开
export class ExampleComponent {
@ViewChild('menuTrigger') trigger: MatMenuTrigger;
open() {
this.trigger.openMenu()
}
<div (dblclick)="open()" [matMenuTriggerFor]="menu" #menuTrigger="matMenuTrigger">Trigger element</div>
<mat-menu #menu="matMenu">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
尝试从触发元素中删除点击处理程序
export class ExampleComponent implements AfterViewInit{
@ViewChild('menuTrigger') trigger: MatMenuTrigger;
ngAfterViewInit() {
this.trigger._handleClick = ()=>{}
}
解决方案
你可以尝试类似的东西
<div [matMenuTriggerFor]="menu" (dblclick)="someMethod()">Trigger element</div>
<mat-menu #menu="matMenu">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
然后在控制器中
class MyComponent {
@ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;
someMethod() {
this.trigger.openMenu();
}
}
希望这对您有所帮助。
推荐阅读
- android - 如何排列LinearLayout内的项目以匹配android上的父宽度
- reactjs - 如何在弹出的 CRA 和 Storybook 中使用 PostCSS 插件
- pandas - Pandas DataFrame“信息”方法
- c++ - 我在使用 istringstream 类时遇到了一些麻烦
- tableau-api - 为什么更改数据源后我的表格图消失了?
- postgresql - 如果我在查询中多次使用它,Postgres 会缓存 SIMILARITY(或任何昂贵的函数调用)结果吗?
- python - python速成课程学习日志项目没有反向匹配错误
- node.js - 向服务器请求后无法返回组件 - MERN
- java - 我想通过我的应用程序发送 wattsapp 消息,而不打开 wattsapp
- docker - 如何捕获 docker pull 状态