以下打字稿代码将始终在当前浏览器选项卡中打开
let realm = try! Realm()
try! realm.write {
for parent:EYLocomotive in objects {
for _ in stride(from:0, to: parent.qty, by: 1) {
let engine : EYEngine = EYEngine.init()
parent.engines.append(engine)
}
realm.add(parent)
}
}
如何在新标签中打开router.navigate? (即$ event.ctrlKey为真时)
答案 0 :(得分:5)
此代码适用于#哈希(例如https://example.com/#/users)和非哈希网址
openInNewTab(router: Router, namedRoute) {
let newRelativeUrl = router.createUrlTree([namedRoute]);
let baseUrl = window.location.href.replace(router.url, '');
window.open(baseUrl + newRelativeUrl, '_blank');
}
答案 1 :(得分:4)
是的,正如@Daneille评论的那样,你必须按照自己的方式处理,因为durandal的路由器插件(navigate功能)没有提供打开新标签的方法。
所以最好在你评论时处理一些事情。
if ($event.ctrlKey) {
window.open(url);
}
答案 2 :(得分:4)
这是我的解决方法
const url = this.router.serializeUrl(this.router.createUrlTree(['/my/url/route'], { queryParams: { ...anyQueryParamsYouWantOrOmitThis } }));
window.open(url, '_blank');
答案 3 :(得分:3)
我认为最好在HTML链接中这样做
<a style=" text-decoration: none;" [routerLink]="['your-path',param1,param2]" target="_blank" >your label </a>