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