如何在角度5的新标签页中打开链接

Ale*_*Dev 29 routing angular

我有一个angular 5组件,需要在新选项卡中打开链接,我尝试了以下操作:

<a href="www.example.com" target="_blank">page link</a>
Run Code Online (Sandbox Code Playgroud)

当我打开链接时,应用程序变慢并打开如下路径:

localhost:4200/www.example.com
Run Code Online (Sandbox Code Playgroud)

我的问题是:正确地做到这一点的正确方法是什么?

Har*_*hid 39

使用window.open()。这很简单!

在您的component.html文件中-

<a (click)="goToLink("www.example.com")">page link</a>
Run Code Online (Sandbox Code Playgroud)

在您的component.ts文件中-

goToLink(url: string){
    window.open(url, "_blank");
}
Run Code Online (Sandbox Code Playgroud)


小智 19

<a [routerLink]="" (click)="openSite(SiteUrl)">{{SiteUrl}}</a>
Run Code Online (Sandbox Code Playgroud)

并在您的 Component.ts 中

openSite(siteUrl) {
   window.open("//" + siteUrl, '_blank');
}
Run Code Online (Sandbox Code Playgroud)


wen*_*jun 17

我刚刚发现了一种使用路由器打开新选项卡的替代方法。

在你的模板上,

<a (click)="openNewTab()" >page link</a>
Run Code Online (Sandbox Code Playgroud)

在你的 component.ts 上,你可以使用 serializeUrl 将路由转换成一个字符串,它可以与 window.open()

openNewTab() {
  const url = this.router.serializeUrl(
    this.router.createUrlTree(['/example'])
  );

  window.open(url, '_blank');
}
Run Code Online (Sandbox Code Playgroud)

  • 在某些情况下非常好用且方便。正是我所需要的。 (2认同)

C.I*_*ngo 14

只需添加target="_blank"

<a mat-raised-button target="_blank" [routerLink]="['/find-post/post', post.postID]"
    class="theme-btn bg-grey white-text mx-2 mb-2">
    Open in New Window
</a>
Run Code Online (Sandbox Code Playgroud)

  • 基本上就是这个,最佳答案 (2认同)

小智 12

app-routing.modules.ts文件中:

{
    path: 'hero/:id', component: HeroComponent
}
Run Code Online (Sandbox Code Playgroud)

component.html文件中:

target="_blank" [routerLink]="['/hero', '/sachin']"
Run Code Online (Sandbox Code Playgroud)


Mor*_*kop 11

某些浏览器可能会阻止由window.open(url, "_blank");. 另一种方法是创建一个链接并单击它。

...

  constructor(@Inject(DOCUMENT) private document: Document) {}
...

  openNewWindow(): void {
    const link = this.document.createElement('a');
    link.target = '_blank';
    link.href = 'http://www.your-url.com';
    link.click();
    link.remove();
  }
Run Code Online (Sandbox Code Playgroud)

  • 最佳答案。安全、干净 (2认同)

zhi*_*min 10

像这样使用完整的URL作为href:

<a href="https://www.example.com/" target="_blank">page link</a>
Run Code Online (Sandbox Code Playgroud)

  • 这是最简单的方法。 (3认同)

DIN*_*ari 5

尝试这个

 window.open(this.url+'/create-account')
Run Code Online (Sandbox Code Playgroud)

无需使用 '_blank'

`window.open` by default open link in new tab 
Run Code Online (Sandbox Code Playgroud)

  • 这是这个问题“How to open link in new tab in Angular 5”的答案 window.open 默认情况下在新选项卡中打开链接 (2认同)