Angular 2 路由器:将所有内容都路由到某条路由后面
Angular 2 Router: route everything behind a certain route
我们正在创建应用的新版本,需要保持旧路由正常运行。遗留 url 以特定路径进入我们的应用程序,我们称之为 legacy
。
因此,如果路由是 /legacy/route1
,我将使用 Resolver 来处理它,以告知它在我们的应用程序中的实际位置(旧的 url 路由方案非常复杂并且需要相当多的逻辑)。但是,如果它出现在 /legacy/route1/subroute3/somethingelse
下,我想用相同的解析器处理它。
如何在我的 RouterModule
中的一行或几行中捕获所有这些路线? 我已经尝试了以下所有方法:
{ path: 'legacy', component: Legacy, resolve: [LegacyRouteResolver] },
{ path: 'legacy/', component: Legacy, resolve: [LegacyRouteResolver] },
{ path: 'legacy/*', component: Legacy, resolve: [LegacyRouteResolver] },
{ path: 'legacy/**', component: Legacy, resolve: [LegacyRouteResolver] }
但其中 none 会给我任何带有多个斜杠的路由,并且还有许多其他情况下它们会失败(octothorp 似乎也会将它们扔掉)
你可以在下面使用,
{
path: 'legacy',
children: [
{path : '**' , component: Legacy}
]
}
这将匹配legacy
之后的所有路由
希望对您有所帮助!!
我们正在创建应用的新版本,需要保持旧路由正常运行。遗留 url 以特定路径进入我们的应用程序,我们称之为 legacy
。
因此,如果路由是 /legacy/route1
,我将使用 Resolver 来处理它,以告知它在我们的应用程序中的实际位置(旧的 url 路由方案非常复杂并且需要相当多的逻辑)。但是,如果它出现在 /legacy/route1/subroute3/somethingelse
下,我想用相同的解析器处理它。
如何在我的 RouterModule
中的一行或几行中捕获所有这些路线? 我已经尝试了以下所有方法:
{ path: 'legacy', component: Legacy, resolve: [LegacyRouteResolver] },
{ path: 'legacy/', component: Legacy, resolve: [LegacyRouteResolver] },
{ path: 'legacy/*', component: Legacy, resolve: [LegacyRouteResolver] },
{ path: 'legacy/**', component: Legacy, resolve: [LegacyRouteResolver] }
但其中 none 会给我任何带有多个斜杠的路由,并且还有许多其他情况下它们会失败(octothorp 似乎也会将它们扔掉)
你可以在下面使用,
{
path: 'legacy',
children: [
{path : '**' , component: Legacy}
]
}
这将匹配legacy
希望对您有所帮助!!