Angular 4.4.6解析器中的window.open()

时间:2018-03-02 18:47:43

标签: angular

我有一项任务是在使用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()
    }

如果问题太模糊,请告诉我,我会尝试修改它。非常感谢任何帮助!

0 个答案:

没有答案