我正在尝试在新标签页而非当前页面上打开routerlink,但是常规html属性(例如target _blank)无法正常工作。
<span routerLink="/custompage/{{city.id}}" class="badge badge-primary badge-pill">open</span>
答案 0 :(得分:11)
这是在组件内执行操作的另一种方法。
openCityInNewWindow(city) {
// Converts the route into a string that can be used
// with the window.open() function
const url = this.router.serializeUrl(
this.router.createUrlTree([`/custompage/${city.id}`])
);
window.open(url, '_blank');
}
HTML看起来像
<ul *ngFor="let city of cities">
<li (click)="openCityInNewWindow(city.id)">{{city.name}}</li>
</ul>
答案 1 :(得分:5)
我认为routerLink无法与新标签页/窗口一起使用。
您将因此而拥有更好的运气, 在您的component.ts上,
window.open(url, '_blank');
或在您的component.html上
<a href="www.domain.com/custompage/{{city.id}}" target="_blank">
但是,如果必须使用routerLink,则还有其他方法,例如编写自己的自定义指令。通过here进行检查,该人已经编写了一个示例实现。
答案 2 :(得分:2)
答案 3 :(得分:0)
您可以将target =“ _ blank”添加到您的链接
对我有用:
<a routerLink="/News" routerLinkActive="active" target="_blank" rel="bookmark"></a>
答案 4 :(得分:0)
我遇到了完全相同的问题,我想我已经找到了两全其美的方法。
将您的DIV,SPAN更改为A标签。添加href链接,但保留routerLink。
<a routerLink="/custompage/{{city.id}}" href="/custompage/{{city.id}}" class="badge badge-primary badge-pill">open</a>
现在应该如何工作: