角度を使用して新しいタブでリンクを開く方法は?


84

新しいタブでリンクを開く必要がある角度5コンポーネントがあります。次のことを試しました。

<a href="www.example.com" target="_blank">page link</a>

リンクを開くと、アプリケーションが遅くなり、次のようなルートが開きます。

localhost:4200/www.example.com

私の質問は:これを角度で行う正しい方法は何ですか?


3
これは私のために働きます<a href="https://example.com" target="_blank">page link</a>
M Mansour

あなたはただ使うことができます<a [href]="'www.example.com'" target="_blank">Link</a>
コーチ

回答:


122

を使用しwindow.open()ます。それはかなり簡単です!

あなたのcomponent.htmlファイルで-

<a (click)="goToLink("www.example.com")">page link</a>

あなたのcomponent.tsファイルで-

goToLink(url: string){
    window.open(url, "_blank");
}

goToLink関数内の文字列が「マジックストリング」ではない場合に、これを行う方法を誰かが指摘できますか?たとえば、変数を介して?
ブライアンアレンウェスト

@BrianAllanWest対応するコンポーネントファイルに変数を設定し、HTMLにパラメータを残します。これが機能しない場合は、デフォルトのバインディングプロパティ[]を使用してテンプレートにバインドするだけで、必要なロジックを実行できます。.htmlのgoToLink()はgoToLink(){window.open(ここであなたの変数、 "_blank")を} .TS
thenolin

小さなポップアップウィンドウに表示して、URLの変更を聞くにはどうすればよいですか。
Mostafa AlBelliehy19年

を追加するhref=''ので、それでもクリック可能に見えます
LeonardoRick20年

_blankなしで使用できます。デフォルトでは、新しいタブが開きます。
YuryMatatov20年

36

次のように完全なURLをhrefとして使用してください。

<a href="https://www.example.com/" target="_blank">page link</a>

11
<a [routerLink]="" (click)="openSite(SiteUrl)">{{SiteUrl}}</a>

およびComponent.ts内

openSite(siteUrl) {
   window.open("//" + siteUrl, '_blank');
}

私にとっては、「//」なしでのみ機能します
Nicolas

1
使用している場合は、「//」+ SITEURL、その後のhttps://またはhttp://は多分、SITEURLにコミットする必要があります@Nicolasのための問題を引き起こしていたこと
BoštjanPišler

10

app-routing.modules.tsファイル:

{
    path: 'hero/:id', component: HeroComponent
}

component.htmlファイル:

target="_blank" [routerLink]="['/hero', '/sachin']"

8

ルーターで新しいタブを開く別の方法を発見しました。

テンプレートで、

<a (click)="openNewTab()" >page link</a>

また、component.tsで、serializeUrlを使用して、ルートを文字列に変換できます。これは、 window.open()

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

  window.open(url, '_blank');
}

5

これを試して:

 window.open(this.url+'/create-account')

使用する必要はありません'_blank'window.openデフォルトでは、新しいタブでリンクが開きます。


1
なぜ彼はそれを試してみる必要がありますか?それは何をしますか?
アンドレアス

1
これは、この質問の答えです。「角度5の新しいタブでリンクを開く方法」window.openデフォルトで新しいタブのリンクを開く
DINESHAdhikari19年

5

に追加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>

2

一部のブラウザは、によって作成され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();
  }

0

あなたはルートでプロパティをバインドしてみることができます

あなたのcomponent.tsで user:any = 'linkABC';

component.htmlで <a target="_blank" href="yourtab/{{user}}">new tab </a>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.