如何重定向到子路由并在Angular中再次重定向?

如何重定向到子路由并在Angular中再次重定向?,angular,typescript,routes,Angular,Typescript,Routes,我正在开发一个Angular 5应用程序,它没有根路径。它应该重定向到一个延迟加载的子级。每个子模块都有自己的重定向,从/child重定向到/child/view(其中单词“child”是功能的名称) 这个想法是根路由不知道默认路由在哪里。因此,我可以重定向到首选子模块,并让该子模块处理最终重定向。所以应该有两个重定向 这是我的rootMainRoutes.ts文件: const routes: Routes = [ {path: '', redirectTo: '/posts', pa

我正在开发一个Angular 5应用程序,它没有根路径。它应该重定向到一个延迟加载的子级。每个子模块都有自己的重定向,从
/child
重定向到
/child/view
(其中单词“child”是功能的名称)

这个想法是根路由不知道默认路由在哪里。因此,我可以重定向到首选子模块,并让该子模块处理最终重定向。所以应该有两个重定向

这是我的root
MainRoutes.ts
文件:

const routes: Routes = [
    {path: '', redirectTo: '/posts', pathMatch: 'full'},
    {
        path: '', component: MainComponent,
        children: [
            {path: 'albums', loadChildren: 'app/Albums/Albums#AlbumsModule'},
            {path: 'todos', loadChildren: 'app/Todos/Todos#TodosModule'},
            {path: 'posts', loadChildren: 'app/Posts/Posts#PostsModule'},
            {path: 'users', loadChildren: 'app/Users/Users#UsersModule'}
        ]
    },
    {path: '**', component: NotFoundComponent}
];

@NgModule({
    imports: [RouterModule.forRoot(routes)],
    exports: [RouterModule]
})
export class MainRoutesModule {
}
我上面的主路径应该将
/
根路径重定向到
/posts
子路径,但它将重定向到
/albums
。我不知道问题是在我的主路线定义中还是在我的子路线中

这是我的
相册路线。ts

const routes: Routes = [
    {path: '', redirectTo: '/albums/view', pathMatch: 'full'},
    {path: 'view', component: ViewComponent}
];

@NgModule({
    imports: [RouterModule.forChild(routes)],
    exports: [RouterModule]
})
export class AlbumsRoutesModule {
}
我还有与上面相同的
TodosModule
PostsModule
UsersModule
(名称不同除外)

我这样写是因为我认为
forChild
路由与它们的加载位置有关

当我转到
/
时,URL被重定向到
/albums/view
。我的根目录中定义的重定向似乎没有被使用。我需要它重定向到
/posts/view

它转到
/albums/view
的事实告诉我,第一个孩子的路线正在使用中


我知道我犯了一个简单的错误,但我看不出来。

我认为重定向到只适用于相同级别的路由

你可以试试这个

const routes: Routes = [
  {path: '', redirectTo: '/posts', pathMatch: 'full'},
  {
    path: 'albums',
    component: MainComponent,
    loadChildren: 'app/Albums/Albums#AlbumsModule'
  },
  {
    path: 'posts',
    component: MainComponent,
    loadChildren: 'app/Posts/Posts#PostsModule'
  },
  ...
  {path: '**', component: NotFoundComponent}
];