Ответ 1
В Angular 2+ вы можете записать любое событие, например:
<div (anyEventName)="whateverEventHandler($event)">
</div>
Обратите внимание, что $event
является необязательным, а возврат функции является возвратом обработчика события, поэтому вы можете return false;
избежать действия браузера по умолчанию из события.
В вашем случае имя события contextmenu
. Итак, ваш код может быть примерно таким:
@Component({
selector: 'my-app',
template: `
<div (contextmenu)="onRightClick($event)">
Right clicked
{{nRightClicks}}
time(s).
</div>
`,
// Just to make things obvious in browser
styles: [`
div {
background: green;
color: white;
white-space: pre;
height: 200px;
width: 200px;
}
`]
})
export class App {
nRightClicks = 0;
constructor() {
}
onRightClick() {
this.nRightClicks++;
return false;
}
}
Вот полный рабочий пример:
http://on.gurustop.net/2E0SD8e