I want to have the following routes in my application:
export const routes: Routes = [
{
path: ':universityId',
component: UniversityComponent,
children: [
{ path: 'info', component: UniversityInfoComponent },
{ path: 'courses/:status', component: CoursesByStatusComponent }
]
}
]
Being on /1/info
or /1/courses/open
url, how do I change :universityId
only from UniversityComponent
?
Simple router.navigate(['../', 2], {relativeTo: currentRoute })
won't do because it redirects to /2
, losing all other information. Using '../2/courses/open
is also not an option - I can be on any child route at that moment.
Best I could come up with is:
const urlTree = this.router.parseUrl(this.router.url);
urlTree.root.children['primary'].segments[0].path = '2';
this.router.navigateByUrl(urlTree);
but it's kind of ugly