Angular2 [routerLink] работает, this.router.navigate, похоже, приводит к сбою приложения

У меня проблемы с маршрутами в приложении Angular2, где такая кнопка отлично работает:

<button [routerLink]="['/home/maincomponent']>Click</button>

Но использование того же маршрута в функции не удается - страница, кажется, загружается на долю секунды, затем приложение полностью обновляется и возвращает меня на главную / корневую страницу, но в консоли нет ошибки.

goToComponent() {
    this.router.navigate(['/home/maincomponent']); 
}

Кроме того, переход к маршруту путем простого ввода пути в браузере загружает компонент без каких-либо ошибок или перенаправлений.

http://localhost:4000/#/home/component

Конфигурация маршрутизатора:

const routes: Routes = [
  {
    path: 'home', 
    component: HomeComponent,
    children: [{ 
      path: '', 
          redirectTo: 'dashboard',
          pathMatch: 'full'
        },
      { 
      path: 'dashboard', 
          component: DashboardComponent
        },
      {
      path: 'search', 
          component: SearchComponent
        },
      {
      path: 'maincomponent', 
          component: MainComponent
        },
      {
      path: '**', 
          component: DashboardComponent
      }]
  }
];

Конфигурация @NgModule:

RouterModule.forRoot(routes,
{
  useHash: true,
  preloadingStrategy: PreloadAllModules
}),

person Stephen R. Smith    schedule 11.03.2017    source источник
comment
выложите, пожалуйста, свои конфиги маршрутизации.   -  person El houcine bougarfaoui    schedule 11.03.2017
comment
Я добавил конфиги роутера к вопросу. Спасибо!   -  person Stephen R. Smith    schedule 11.03.2017


Ответы (1)


Я искал не в том месте проблему. Я бы привязал вызов функции (щелчок) к

<a href="" (click)="goToComponent">LINK</a> 

элемент, который выходит из строя.

Переключение на

<span (click)="goToComponent">LINK</span> 

элемент решает проблему.

person Stephen R. Smith    schedule 11.03.2017