Angular 8 ctrlKey和metaKey是否等效?

时间:2019-07-12 16:26:01

标签: angular

我有一个用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中是否有另一种方法来检测这两个修改器?

1 个答案:

答案 0 :(得分:0)

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

请参见以下简单示例:

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