Я настраиваю маршрутизацию для приложения Angular 6 и хочу иметь маршрут, который может соответствовать переменному количеству сегментов. В настоящее время у меня есть конфигурация маршрута, которая выглядит следующим образом:
const routes: Routes = [
{ path: '', redirectTo: '/catalog', pathMatch: 'full' },
{ path: 'login', component: LoginFormComponent },
{ path: 'catalog', component: CatalogComponent, canActivate: [SessionGuard] },
{ path: 'repo/:name', component: RepositoryComponent, canActivate: [SessionGuard] }
];
Это соответствует URL-адресу, подобному repo/test
, и отправляет его на RepositoryComponent
, но repo/foo/bar
вызывает ошибку:
ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'repo/foo/bar'
Error: Cannot match any routes. URL Segment: 'repo/foo/bar'
at ApplyRedirects.push../node_modules/@angular/router/fesm5/router.js.ApplyRedirects.noMatchError (router.js:1341)
Я привык к соглашению в ASP.NET MVC, которое позволяет мне объявлять маршрут следующим образом:
[HttpGet("repo/{*name}")]
Что будет соответствовать repo/test
и repo/foo/bar
и помещать все после первой косой черты (test
или foo/bar
) в аргумент name
. Есть ли способ получить эквивалентное поведение с Angular?