我的理解是,路线基于 “首先赢得比赛”的原则,因此,最具体的路线应放置在路线数组的开头,而最一般的路线应放在终点。
但是,在下面的代码(对我来说很好)上,它不是不是最通用的路由放在开头,然后接下来的两条路由的优先级更高,而第二条更具体吗?
为什么第一条路线不总是与每条路线都匹配(意味着其他路线从不匹配)?我以为空路径(path: ''
)匹配所有内容,因为所有路径都以''
开头和结尾,但是我对此是否理解正确?
类似地,即使假设我们确实超过了path:''
,为什么'search/'
也不总是触发,却从未允许'search/:query'
被匹配? (是因为pathMarch: 'full'
吗?)。
非常感谢!
来自app.module.ts
:
const appRoutes: Routes = [
{ path: '',
component: HomePageComponent
},
{ path: 'search',
redirectTo: '/search/angular',
pathMatch: 'full' },
{
path: 'search/:query',
component: GitSearchComponent,
data: {title: 'Git Search'}
},
{ path: '**', component: NotFoundComponent }
];
答案 0 :(得分:0)
Crowdpleasr,当您有参数时,将应用该原理。想像一些
BrowserTest.exe ceridian
不起作用,因为uno / search与uno /:id匹配(因此您永远都无法到达OtherComponent)
pathMatch:“完整”用于重定向,因此只有“精确”值重定向到页面。 (就您而言,如果您未放置,则搜索/角度,搜索/其他以及搜索/另一个重定向)