角度2路由有问题,我尝试了很多东西,但我仍然有错误消息。 我得到了这个url:/ project /:projectId。项目页面有路由器插座,可以访问这两个网址: /项目/:专案编号/设置 /项目/:专案编号/添加卡
所以我的问题是当我的网址在/project/:projectId/add-card
时。我尝试使用this.router.navigate(['./', 'setting']);
访问我的设置页面
我还有:
无法匹配任何路线:'设置'(...)
我真的不明白如何通过代码访问此内容。
这是我的父母路线:
const PROJECT_ROUTES = [
{
path: ':id',
CanActivate: [AuthGuard],
component: ProjectDetailComponent ,
loadChildren: './../menu/menu.module#MenuModule',
resolve: {
project: ProjectResolver
}
},
{
path: '',
CanActivate: [AuthGuard],
component: ProjectContainerComponent,
pathMatch: 'full'
}
]
这是我的孩子路线:
const MENU_ROUTES = [
{ path: 'setting', component: MenuSettingComponent },
{ path: 'add-card', component: MenuAddCardComponent},
{ path: '', redirectTo: 'setting' },
];
我的代码表单切换到设置页面:
onOpenMenu() {
console.log('navigate to setting');
this.router.navigate(['./', 'setting']);
this.menuService.menuEvent.emit(true);
}
感谢您的帮助
答案 0 :(得分:1)
我认为您需要添加另一个.
,否则您将导航到/project/:projectId/add-card/setting
对于相对导航,还需要传递当前路线。
constructor(private route:ActivatedRoute){}
this.router.navigate(['../', 'setting'], {relativeTo: this.route});