如何在Angular中将非哈希URL重定向到带有哈希的URL?

时间:2019-04-16 18:08:06

标签: javascript angular angular2-routing

因此用户收到一个URL,它看起来像http://myapp.com/foo

由于Angular的应用程序路由可“使用散列”工作,因此在http://myapp.com/#/foo下可以使用适当的组件。

而且因为我有一条类似这样的路线:

{ path: '',   redirectTo: '/mainpage', pathMatch: 'full' }

http://myapp.com/foo由它处理,并重定向到http://myapp.com/#/mainpage

我想要实现的是从http://myapp.com/foohttp://myapp.com/#/foo的重定向。当然,我想像现在一样继续重定向到/#/ mainpage。

我该如何在Angular 7中做到这一点? 如果只有redirectTo参数可以将函数作为值而不是字符串,然后让我自己处理重定向,那将是事情。但恐怕是不可能的。

//更新

我想到的是使用InitialRedirectGuard和一个空的子数组,而不是redirectTo对象的path: ''

    path: '',
    children: [],
    canActivate: [InitialRedirectGuard],
    pathMatch: 'full',

重定向的逻辑在于InitialRedirectGuard,在这里我使用window.location.pathname来查看URL Im的来源。然后发生router.navigate。我猜不太酷,但似乎可以正常工作。

0 个答案:

没有答案