web-dev-qa-db-ja.com

TypeScriptでrouter.navigateを使用して新しいタブを開く方法

次のTypeScriptコードは常に現在のブラウザタブで開きます

navigate($data: menuItem, $event: JQueryEventObject) {
       //...
       let a = $event.currentTarget as HTMLAnchorElement;
       router.navigate(a.href);    
    }

newタブでrouter.navigateを開くにはどうすればよいですか? (つまり、$ event.ctrlKeyがtrueの場合)

5
Danielle

はい、@ Daneilleがコメントしたように、durandalのルータープラグイン( navigate 関数)には新しいタブを開く方法がないため、独自の方法で処理する必要があります。

あなたがコメントしたように何かを処理する方が良いです。

if ($event.ctrlKey) { 
    window.open(url); 
}
5
Thaadikkaaran

これは私の解決策です

const url = this.router.serializeUrl(this.router.createUrlTree(['/my/url/route'], { queryParams: { ...anyQueryParamsYouWantOrOmitThis } }));
window.open(url, '_blank');
8
harmonickey

このようなHTMLリンクでやった方がいいと思います

<a  style=" text-decoration: none;" [routerLink]="['your-path',param1,param2]" target="_blank"  >your label </a>
3
MNF