Angular - 基于前缀重定向但丢弃剩余的、不匹配的路径
Angular - Redirect based on prefix but drop remaining, non-matched path
我需要在我的应用程序中支持旧路径,但我想将用户重定向到新的正确路径。因此,例如,我有以下遗留路径:
/legacyRoute/subRoute
, /legacyRoute/anotherSubRoute
我希望这两个都被重定向到:
/newRoute
我在 Angular docs 中找到了 pathMatch 选项 prefix
,但将我的路线设置为:
{path: 'legacyRoute', redirectTo: 'newRoute', pathMatch: 'prefix' }
导致路径看起来像 /newRoute/subRoute
这不是什么大问题,页面仍然像我预期的那样加载,但它仍然困扰着我。是否有一种 Angular 方法可以根据前缀重定向并丢弃任何不匹配的内容?另外,如果我能保留我的查询字符串参数就好了。
Dangit,发布后立即找到了解决方案。您可以指定一个子路径而不对其进行任何操作,如下所示:
{path: 'legacyRoute/:subRoute', redirectTo: 'newRoute', pathMatch: 'prefix' }
这将导致:
legacyRoute/whatever?blah=blah
-> newRoute?blah=blah
我需要在我的应用程序中支持旧路径,但我想将用户重定向到新的正确路径。因此,例如,我有以下遗留路径:
/legacyRoute/subRoute
, /legacyRoute/anotherSubRoute
我希望这两个都被重定向到:
/newRoute
我在 Angular docs 中找到了 pathMatch 选项 prefix
,但将我的路线设置为:
{path: 'legacyRoute', redirectTo: 'newRoute', pathMatch: 'prefix' }
导致路径看起来像 /newRoute/subRoute
这不是什么大问题,页面仍然像我预期的那样加载,但它仍然困扰着我。是否有一种 Angular 方法可以根据前缀重定向并丢弃任何不匹配的内容?另外,如果我能保留我的查询字符串参数就好了。
Dangit,发布后立即找到了解决方案。您可以指定一个子路径而不对其进行任何操作,如下所示:
{path: 'legacyRoute/:subRoute', redirectTo: 'newRoute', pathMatch: 'prefix' }
这将导致:
legacyRoute/whatever?blah=blah
-> newRoute?blah=blah