angular - 使用 Angular 材质菜单的流畅上下文菜单行为?
问题描述
我正在尝试使用 mat-menu 作为上下文菜单。右键单击视图时,我可以打开菜单。代码如下。
模板:
<!-- The context trigger view. (The actual view) -->
<div (contextmenu)="onContext($event)">
Content here
</div>
<!-- The hidden view that menu originates from -->
<div style="visibility: hidden; position: fixed;"
[style.left]="contextPosition.x"
[style.top]="contextPosition.y"
#contextTrigger
[matMenuTriggerFor]="contextMenu"></div>
<!-- The menu iteself -->
<mat-menu #contextMenu="matMenu" [hasBackdrop]="true">
<ng-template matMenuContent>
<button mat-menu-item>Move</button>
<button mat-menu-item>Rename</button>
</ng-template>
</mat-menu>
零件:
contextPosition = { x: '0', y: '0' }
@ViewChild('contextTrigger', { read: MatMenuTrigger })
protected contextTrigger: MatMenuTrigger;
onContext(event: MouseEvent) {
event.preventDefault();
// Save location
this.contextPosition.x = event.clientX + 'px';
this.contextPosition.y = event.clientY + 'px';
// Open menu
this.contextTrigger.openMenu();
}
堆栈闪电战
我正在尝试实现流畅的上下文菜单行为,类似于许多程序所拥有的。我怎样才能实现它?
此外,我尝试使用这个和这个包。然而,每个人都有自己的问题。目前,如果我能让它工作,我更喜欢 Material Menu 组件。
解决方案
推荐阅读
- multidimensional-array - 如何通过对 3D 数组中的每个值求和来返回 2D 数组
- excel - 单独计算细胞变化
- vulkan - 是否应该尽量减少应用程序创建的命令池的数量?
- r - R-更改行顺序并保持列对一致
- python - 将 TFRecord 转换回 JPEG 图像
- ruby-on-rails - 如何通过整数值更改时区?
- android - 将 TabLayout 与折叠工具栏对齐
- java - WildFly - 创建具有长时间运行应用程序的应用程序
- java - 如何让 Gradle 将 Java 依赖项放在不同的目标目录中?
- node.js - 如何在 NodeJS Express 应用程序的多个文件中使用一个 Mysql 池连接