API UrlMatcher
изменился в Angular 9. Я передавал параметр вспомогательной функции соответствия следующим образом в Angular 8:
export function matcherHelper(segments: UrlSegment[], providerParam) {
//... Logic here
return ....;
}
Маршрут:
{
matcher: (url) => matcherHelper(url, 'xxx'),
loadChildren: () => import('./xxx/auth.module').then(m => m.AuthModule),
}
Но вышеприведенное в Angular 9 изменено на следующее:
{
matcher: matcherHelper('xxx'),
loadChildren: () => import('./xxx/auth.module').then(m => m.AuthModule),
}
В вышеприведенном по умолчанию UrlSegment[]
передается как первый параметр по умолчанию, но, поскольку у меня есть два параметра синтаксис недопустим, потому что вспомогательная функция ожидает два параметра вместо одного.
Это работает только в том случае, если я использую его, как указано ниже, без каких-либо параметров (UrlSegment по умолчанию передается по следующему маршруту):
{
matcher: matcherHelper,
loadChildren: () => import('./xxx/auth.module').then(m => m.AuthModule),
}
https://angular.io/api/router/UrlMatcher