Маршрутизатор Angular 2.0.навигация не работает

#angular

#угловой

Вопрос:

Я использую Angular 2.0 с версией маршрутизатора 3.0.0. У меня определена следующая конфигурация маршрутизации.

 export const onlineRoutes: Routes = [
 { path: 'online.html', component:onlineHome },
 { path: 'portfolioperformance', component: PortfolioPerformance },
];

 export const onlinerouting = RouterModule.forRoot(onlineRoutes,{useHash:false,enableTracing:true});
  

Он успешно маршрутизирует к online.html маршрут, однако, когда я пытаюсь перенаправить на ‘portfolioperformance’, используя следующий оператор, он не работает.

 this.router.navigate(['/portfolioperformance']);
  

Если я использую ссылку маршрутизатора, как показано ниже, при нажатии на ссылку она работает нормально.

 <li><a [router-link]="['/portfolioperformance']">Start</a></li>
  

Я включил трассировку маршрутизатора, и ниже приведены сведения о трассировке маршрута.

Start group›: Router Event: NavigationStart
    NavigationStart(id: 1, url: '/portfolioperformance')
    NavigationStart {id: 1, url: "/portfolioperformance"}
‹End group›
‹Start group›: Router Event: NavigationStart
    NavigationStart(id: 2, url: '/online.html#id_token=XXXXXXXXXXXXXXXXXXXXX"}
‹End group›
 Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode.
 ‹Start group›: Router Event: NavigationCancel
    NavigationCancel(id: 1, url: '/portfolioperformance')
    NavigationCancel {id: 1, url: "/portfolioperformance", reason: "Navigation ID 1 is not equal to the current navigation id 2"}
 ‹End group›
 ‹Start group›: Router Event: RoutesRecognized
    RoutesRecognized(id: 2, url: '/online.html#id_token=XXXXXXXXXXXX', state: Route(url:'', path:'') { Route(url:'online.html', path:'online.html') } )
  

Не удалось выяснить, что происходит не так. Приветствуется любая помощь.

Комментарии:

1. Возможно, вам нужно добавить this.router.navigate(...), {relativeTo: currentRoute});

2. Спасибо. Я пробовал это, но не помогло.

3. Вы пробовали routerLink и this.router.navigate в том же компоненте, и вы перешли constructor(this currentRoute:ActivatedRotue) к relativeTo ? (смотрите также angular.io/docs/ts/latest/guide /… )

4. Вы решили это? Я сталкиваюсь с той же проблемой

5. У меня также возникла эта проблема. routerLink работает, но navigate и navigateByUrl ничего не делают. Каждый раз выполняется успешный обратный вызов. Однако я заметил, что если я добавлю какой-нибудь случайный URL-адрес в вызов, он также вернет обработчик успеха, поэтому я думаю, что здесь это бесполезно.