次のTypeScriptコードは常に現在のブラウザタブで開きます
navigate($data: menuItem, $event: JQueryEventObject) {
//...
let a = $event.currentTarget as HTMLAnchorElement;
router.navigate(a.href);
}
newタブでrouter.navigateを開くにはどうすればよいですか? (つまり、$ event.ctrlKeyがtrueの場合)
はい、@ Daneilleがコメントしたように、durandalのルータープラグイン( navigate 関数)には新しいタブを開く方法がないため、独自の方法で処理する必要があります。
あなたがコメントしたように何かを処理する方が良いです。
if ($event.ctrlKey) {
window.open(url);
}
これは私の解決策です
const url = this.router.serializeUrl(this.router.createUrlTree(['/my/url/route'], { queryParams: { ...anyQueryParamsYouWantOrOmitThis } }));
window.open(url, '_blank');
このようなHTMLリンクでやった方がいいと思います
<a style=" text-decoration: none;" [routerLink]="['your-path',param1,param2]" target="_blank" >your label </a>