4

Looking for some advice on why a route change to the same component in my Angular 2 application is reloading the component.

I have 2 routes, both with the same component:

  • /home
  • /home/:id
const appRoutes = [
    {path:'', redirectTo:'/home', pathMatch:'full'},
    {path:'home', component: HomeComponent},
    {path:'home/:id', component: HomeComponent},
];

When changing between the two routes, the component is reloaded. When changing the parameter on the second route, the component is not reloaded (as expected).

Is there any way of being able to change between these routes without reloading the component, just as changing the parameter does?

Check out this Plunker to see what I mean

1
  • Hi, I have the same issue. Do you found a solution for this case ? Commented Jan 23, 2017 at 16:05

1 Answer 1

2

I have the same issue so here is my solution. Hope it helps.

    {
      path: '',
      redirectTo: 'home/',
      pathMatch: 'full',
    },
    {
      path: 'home',
      redirectTo: 'home/',
      pathMatch: 'full',
    },
    {
      path: 'home/:id',
      component: HomeComponent,
    }
Sign up to request clarification or add additional context in comments.

1 Comment

This works well. I think the only flaw is that it is technically redirecting to "home/0", not just "home/". Which is fine if 0 is not a valid id and you can just tell your code to ignore an id of 0.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.