Angular2+ 在正常点击时点击事件,但在中间点击或新点击时路由 window

Angular2+ on click event if normal click but route if middle click or new window

我正在尝试设置一个 link,这样如果用户正常点击,页面上的区域就会扩展,但如果他们用中间按钮(或任何类型的新 window 按钮)然后用户导航到 link.

这是一个不起作用的例子。仅设置 href 标记也不起作用,无论如何单击 link,href 和下面的示例都会导航到该页面。

使用下面的代码也设置了变量,但用户很快就离开了。

<a class="commentBubble" (click)="showComments = true;" [routerLink]="['/b', blogPost.Id, blogPost.url]">0</a>

您需要在用户点击时调用一个函数并将点击事件传递给它:

<a (click)='onClick($event)'></a>

在此函数中,您可以像这样区分这两种情况:

public onClick(event: MouseEvent): void {
    if (event.which === 2 ){
        /** Middle mouse click */
        this.router.navigate(['/b', this.blogPost.Id, this.blogPost.url])
    } else {
        /** Normal click */
        this.showComments = true;
    }
}