嵌套路由器无限循环Angular

时间:2017-12-08 16:12:01

标签: angular

我试图用标题,菜单和内容div做一个简单的页面 当有人点击菜单的ancor时,我希望内容div填充与相关路线对应的页面。 而且,就目前而言,我只想要这个公共页面(标题,菜单和内容)匹配任何路线。

appComponent就在这里路由到其他组件:

应用-component.html

<router-outlet></router-outlet>

包含标题,菜单和内容的组件称为LayoutComponent:

布局component.html     

<div>
    <app-menu></app-menu>
    <router-outlet></router-outlet>
</div>

我的路由配置如下:

export const routes: Routes = [
  {
    path: 'login',
    redirectTo: 'login',
    pathMatch: 'full'
  },
  {
    path: 'common',
    loadChildren: 'app/dsia-common/dsia-common.module'
  },
  {
   path: 'home',
   redirectTo: '',
   pathMatch: 'full'
  },
  {
   path: '',
   component: LayoutComponent,
   children: [
  {
    path: '**',
    pathMatch: 'full',
    canActivate: [AuthGuardService],
    component: GenericPageComponent
  }
]

在我的网站上浏览时,在 localhost:4200 /

我希望弹出一个登录页面(AuthGuardService会将我重定向到登录路由)。 登录成功后,登录组件将重定向到主页。 主页应该使用LayoutComponent来显示嵌套路由器插座中的标题,菜单和内容。 它应该为每个网址这样做。 总结一下

/ - &gt; (触发器)可以激活[AuthGuardService] - &gt; (重定向到)/ login - &gt; (成功重定向到)/ home - &gt; (重定向到)/ - &gt; LayoutComponent

不幸的是我的页面没有加载为登录页面被递归调用(总是调用导航取消事件)。我认为这是因为在调用/ login路径时使用了AuthGuardService (因此登录路由被取消并且它被重定向到登录路由,依此类推...)。根据我的理解应该是这种情况。

有人能指出我在这里明显缺少的东西吗?

非常感谢你。

的问候。 本杰明

1 个答案:

答案 0 :(得分:1)

您将登录重定向到登录。存在无限循环是正常的。尝试更改路由配置。这是一个样本。

done