如何在Angular中使用“ routerLink”启用“ ctrl + click”

时间:2018-10-07 06:49:42

标签: angular routerlink

在Angular中,如果您使用此功能:

<div routerLink="/home"> <img src="..." /> </div>

当我按图像时,它会完美路由,我想按ctrl键并单击以在新选项卡中打开此链接,或将该图像拖动到新选项卡,但是当我按ctrl键并单击时它在同一页面中打开,并且如果我拖动它,则在新选项卡中打开的图像而不是链接中打开的图像,我尝试使用target="_blank",但不起作用。

4 个答案:

答案 0 :(得分:3)

您将需要使用div标签,而不是使用a标签,以便浏览器知道将其视为链接。

<a routerLink="/home"> <img src="..." /> </a>

答案 1 :(得分:1)

我看到几个人问了这个问题,但是对我来说,这没有任何意义。

使用Angular构建应用程序时,就是在构建单页应用程序。这从本质上就是“一个浏览器窗口”。

如果您单击路由器链接,则按预期的行为是什么,如果新组件在新窗口中呈现,则该路由器链接定义为将当前组件替换为新组件?

您实际得到的是该应用程序的第二个实例。

我建议您要么以应有的方式使用Angular作为SPA应用程序,要么考虑使用其他框架。

也就是说,如果您要在新窗口(其他站点或后端直接提供的内容(例如PDF或电子表格))中打开非角度内容,则只需使用具有href属性的锚标记,而不是routerLink。

答案 2 :(得分:0)

您似乎遇到了类似的问题,该问题提到了 here ,我建议您尝试这样的事情,

<a routerLinkActive="active" [routerLink]="['/home']" ><img src="..." /></a>

答案 3 :(得分:0)

您可以向div添加link角色

<div routerLink="/home" role="link">
  <img src="..." /> 
</div>

如果您想启用“ ctrl + click”行为,而不必这样做:

  • 想要将您的div标签更改为a标签
  • 使用target="_blank"