Angular 2 children在第一级没有路径

时间:2017-01-29 20:31:11

标签: angular angular-routing

我有这些组件:

LoginComponent / login

CoreComponent 没有自己的路线,仅用于包装其他组件(不包括登录,注册等等)

HomeComponent / home
条目 /条目

const appRoutes: Routes = [
  { path: 'x',
    component: CoreComponent,
    children: [
      { path: '', redirectTo: 'home', pathMatch: 'full' },
      { path: 'home', component: HomeComponent },
      { path: 'entries', component: EntriesComponent },
  ]},
];

路由现在是/ x / home或/ x / entries和/ login用于登录。

如何从第一级路径中删除x?

3 个答案:

答案 0 :(得分:1)

如果您不必使用CoreComponent,则可以简化您的路线;

const appRoutes: Routes = [
     {
          path: '',
          redirectTo: 'home',
          pathMatch: 'full'
     },
     {
          path: 'home',
          component: HomeComponent
     },
     ...
]

如果必须使用CoreComponent并且没有其他路由使用空路径'',则可以从父路由中删除x。另外,您可以查看this。如有任何其他问题,请与我们联系。

答案 1 :(得分:1)

只需写下这样的路线:

const appRoutes: Routes = [
  { path: '', redirectTo: 'home',
    children: [
      { path: 'entries', component: EntriesComponent },
  ]},
  { path: 'home', component: HomeComponent },
];

答案 2 :(得分:0)

我没有测试下面的代码,但是试一试它可能会对你有用。

[
  {
    path: '',
    canActivate: [CanActivateHomeOrEntries],
    resolve: {
      token: TokenNeededForBothHomeAndEntries
    },

    children: [
      {
        path: 'home',
        component: HomeComponent
      },
      {
        path: 'entries',
        component: EntriesComponent
      }
    ]
  }
]