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;
}
}
我正在尝试设置一个 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;
}
}