Angular2+ 如果正常点击,则点击事件,但如果中键点击或新窗口,则路由



我正在尝试设置一个链接,以便如果用户正常单击页面上的区域,但如果他们使用中间按钮(或任何类型的在新窗口中打开按钮(单击它,则用户导航到链接。

下面是一个不起作用的示例。仅设置 href 标记也不起作用,无论单击链接的方式,href 和以下示例都导航到该页面。

使用以下代码,还可以设置变量,但用户随后会快速导航离开。

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

用户单击时调用函数并将 click 事件传递到其中:

<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;
    }
}

相关内容

最新更新