Angular - 基于前缀的重定向,但是丢弃剩余的,不匹配的路径

时间:2018-06-12 13:56:35

标签: angular angular2-routing angular-routing

我需要在我的应用程序中支持旧路径,但我想将用户重定向到新的正确路径。例如,我有以下传统路径:

/legacyRoute/subRoute/legacyRoute/anotherSubRoute

我想要将这两个重定向到:

/newRoute

我在Angular docs中找到了pathMatch选项prefix,但我将路线设置为:

{path: 'legacyRoute', redirectTo: 'newRoute', pathMatch: 'prefix' }

会产生类似于/newRoute/subRoute

的路径

这不是一个大问题,页面仍然像我期望的那样加载,但它仍困扰着我。是否存在基于前缀重定向的Angular方式并删除任何不匹配的内容?此外,如果我可以保留我的查询字符串参数,那就太好了。

1 个答案:

答案 0 :(得分:2)

Dangit,发布后立即找到解决方案。您可以指定一个子路由,而不是像这样做任何事情:

{path: 'legacyRoute/:subRoute', redirectTo: 'newRoute', pathMatch: 'prefix' }

这将导致: legacyRoute/whatever?blah=blah - > newRoute?blah=blah