我試圖在用戶右鍵單擊報警列表中的項目時顯示上下文菜單。問題是我需要使用指令mdMenuTriggerFor
才能從組件中調用openMenu()
。但是這個指令是用來左鍵單擊的,所以菜單總是顯示出來(右鍵點擊&)。另外,右鍵單擊時,菜單顯示在列表頂部。使用Angular Material 2菜單作爲列表項上的上下文菜單
我的代碼如下所示:
<div class="list">
<div *ngFor="let alarm of (_alarms | alarmsFilter:search.value)">
<alarm-item [alarm]="alarm" (onClick)="onSelection(alarm)" (contextmenu)="onContextMenu($event, alarm)" [mdMenuTriggerFor]="appMenu"></alarm-item>
</div>
</div>
<md-menu #appMenu="mdMenu">
<!-- Menu content -->
</md-menu>
而且我的組件打字稿文件看起來像這樣:
@Component({
selector: // My selector
templateUrl: // My template URL
})
export class AlarmComponent {
@Input() alarm;
@ViewChild(MdMenuTrigger) trigger: MdMenuTrigger;
// ...
private onContextMenu($event: Event, alarm: Alarm): void {
this.trigger.openMenu();
$event.preventDefault();
}
有什麼建議?