我正在使用角度5,我不会添加默认的死记硬背,但是按照特定的页面。
例如,我有“登录”页面的这条路线:
{ path: 'log-in', component: LogInComponent }
我不会,如果用户会尝试不退出这样的网址:
log-in/3/4
log-in/3/4/5
log-in/3/4/5/6
我将其重定向到“not-found-page 1 ”。
但是如果用户将尝试不退出与“登录”页面无关的网址。像这样:
registration/3/4
home/3/4
我将其重定向到“not-found-page 2 ”
显然我不能用:{ path: '**' }
因为它适用于所有页面。
谢谢!
答案 0 :(得分:2)
您可以使用{ path: '**' }
。但你必须看,路线是按正确的顺序定义的。
您可以使用componentless
定义child routes
路由,路径为空路径,如下所示:
{ path: 'log-in', children: [
{path : '' , component: LogInComponent }
{path : '**' , component: notFoundPage1 }
]},
... other routes
{ path : '**' , component: notFoundPage2 }
这种方式/log-in
将被定向到LogInComponent
,因为如果/log-in
之后没有任何内容,则将在那里路由空子路由。 log-in/*
的所有其他路由都将路由到notFoundPage1
,因为第二条路径是匹配的。
与/log-in
无关的所有路线都将路由到notFoundPage2
注意:此配置中的顺序非常重要。如果需要,您甚至可以定义其他子路由。但是path: '**'
必须在最后才能捕获所有未定义的子路由。
答案 1 :(得分:1)
我认为您可以像这样使用您的配置
{ path: 'log-in', component: LogInComponent }
{ path: 'log-in/:id/:anotherID', component: notFoundPage1 }
{ path: 'unKnownRoute', component: notFoundPage2 }
PS:仅当您有一些特定的条件
时才有效