사용자가 알람 목록에서 항목을 마우스 오른쪽 버튼으로 클릭 할 때 상황에 맞는 메뉴를 표시하려고합니다. 문제는 구성 요소에서 openMenu()
으로 전화를 걸려면 mdMenuTriggerFor
지시문을 사용해야합니다. 그러나이 지시어는 왼쪽 클릭에 작용하기 때문에 메뉴는 항상 표시됩니다 (& 오른쪽 클릭). 또한 마우스 오른쪽 버튼을 클릭하면 메뉴가 목록 상단에 표시됩니다.각도 재료 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();
}
어떤 제안?