Angular 2 parent 的路径替换为 child 的路径
Angular 2 parent's path replaced with child's path
这是我当前最新版本的路由配置 Angular app
const routes = [
{ path: 'board', component: BoardComponent, canActivate: [AuthGuard], children: [
{ path: 'stories', component: StoryComponent }]},
{ path: '**', redirectTo: 'board', pathMatch: 'full' }
];
它工作正常,两个组件都显示了,我想以相同的方式工作,但有一点变化:当用户路由到 /board/stories
时,我希望路径只是 /stories
, 这样可以吗?
根据您定义路线的方式 - 不,这是不可能的。
通过将 stories
定义为 board
的子节点,您确实将路由定义为 .../board/stories
。因此,只有 /stories
的路由不会匹配您定义的任何路由。
如果您希望路线只是 /stories
那么您只需将路线重新定义为
const routes = [
{ path: 'board', component: BoardComponent, canActivate: [AuthGuard]},
{ path: 'stories', component: StoryComponent, canActivate: [AuthGuard]},
{ path: '**', redirectTo: 'board', pathMatch: 'full' }
];
这是我当前最新版本的路由配置 Angular app
const routes = [
{ path: 'board', component: BoardComponent, canActivate: [AuthGuard], children: [
{ path: 'stories', component: StoryComponent }]},
{ path: '**', redirectTo: 'board', pathMatch: 'full' }
];
它工作正常,两个组件都显示了,我想以相同的方式工作,但有一点变化:当用户路由到 /board/stories
时,我希望路径只是 /stories
, 这样可以吗?
根据您定义路线的方式 - 不,这是不可能的。
通过将 stories
定义为 board
的子节点,您确实将路由定义为 .../board/stories
。因此,只有 /stories
的路由不会匹配您定义的任何路由。
如果您希望路线只是 /stories
那么您只需将路线重新定义为
const routes = [
{ path: 'board', component: BoardComponent, canActivate: [AuthGuard]},
{ path: 'stories', component: StoryComponent, canActivate: [AuthGuard]},
{ path: '**', redirectTo: 'board', pathMatch: 'full' }
];