【问题标题】:Angular2+ on click event if normal click but route if middle click or new window如果正常单击,则单击事件上的 Angular2+,但如果中间单击或新窗口则路由
【发布时间】:2019-04-21 19:51:53
【问题描述】:

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

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

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

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

【问题讨论】:

标签: angular angular-routing


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多