我有一项任务是在使用Angular 4.4.6点击下拉菜单中的项目时在不同的标签中实现打开网址 我有一个使用带有window.open()方法的虚拟组件的黑客解决方案来完成工作。但我倾向于认为有更优雅的解决方案。尝试使用this答案的衍生物进行攻击,我相信这很接近,但我错过了一些东西。 以下是我正在尝试的内容片段:
app.module.ts提供程序摘录解析器
{
provide: 'urlRedirectResolver', useValue: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {
//Something like this
window.open((route.data as any).otherUrl);
//OR
window.location.href = window.open((route.data as any).otherUrl);
}
}
app.router.ts路线摘录实施
path: 'SomeComponentURL', component: SomeComponent, resolve: {
url: 'urlRedirectResolver'
},
data: {
otherUrl: (document.location.hash != '#/SomeComponent')
? 'someContent.pdf' : history.back()
}
如果问题太模糊,请告诉我,我会尝试修改它。非常感谢任何帮助!