Angular 8 ctrlKey和metaKey等效吗?

问题描述 投票:0回答:1

我有一个用Angular 1.x编写的Web应用程序,它允许用户在锚点链接上按ctrl单击(或在Mac上为cmd单击)以在新选项卡中将其打开。未经修改的点击会更改DOM内容,而不是在新路径下重新加载页面。 Angular 1.x代码如下:

<a ng-click="nav.go(e.path,$event)" href="{{::e.path}}">{{::e.title}}</a>

并且在Angular 1.x控制器中:

if (e.ctrlKey == 1 || e.metaKey == 1) {
    // allow page to be opened in a new tab
    return false;
}
e.preventDefault();
e.stopPropagation();
...continue by doing ajax and DOM replacement instead

现在将应用程序升级到Angular 8,但是Event类没有ctrlKey或metaKey。在Angular 8中,还有其他方法可以检测这两个修饰符吗?

angular
1个回答
0
投票

[MouseEvent中有ctrlKey和metaKey。如果收到点击事件,则为MouseEvent,因此您可以访问下摆。它们都为布尔值。

请参见此简单示例:

https://stackblitz.com/edit/angular-cpqrjr

© www.soinside.com 2019 - 2024. All rights reserved.