0

我在使用这样的按钮可以正常工作的 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
}),
4

1 回答 1

1

我在错误的地方寻找问题。我将函数调用(单击)绑定到

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

元素,失败。

切换到

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

元素解决了这个问题。

于 2017-03-11T19:56:38.610 回答