我有一个主App路由器和多个子路由器。我希望可以选择在从父路线导航时指定要打开的子路径。
父路由器:
configureRouter(config, router) {
this.router = router;
config.map([
{ route: ['','home'], name: 'home', moduleId: 'home/home' },
{ route: 'students/:id?', name: 'students', moduleId: 'students/students' },
{ route: 'staff', name: 'staff', moduleId: 'staff/staff' }
]);
}
学生儿童路由器:
export class Students {
configureRouter(config, router) {
config.map([
{ route: ['', 'home'], name: 'student-home', moduleId: 'students/students-home' },
{ route: 'list', name: 'student-list', moduleId: 'students/student-list' },
{ route: 'profile/:id', name: 'student-profile', moduleId: 'students/profile/overview' },
{ route: 'lockers', name: 'student-lockers', moduleId: 'students/lockers/home' }
]);
this.router = router;
}
activate(params) {
if (params.id) {
console.log("Going straight to a student record for: ", params);
this.router.navigateToRoute('student-profile', {id: params.id});
}
}
}
上述方案(在激活状态下使用navigateToRoute()
)不起作用,也不确定它是最好的方法。如果我包含id参数,如何可以选择直接从主应用程序路由器导航到学生档案屏幕?
答案 0 :(得分:2)
我放弃了使用子路由器的命名路由。如果别人比我更了解他们,我会很好奇。但是,我发现只使用应用程序任何部分的URL路由就可以了。
swipeUp()
答案 1 :(得分:0)
您不需要在您的孩子路线中使用主动。 Aurelia路由器将自动进入您的子路线。
export class Students {
configureRouter(config, router) {
config.map([
{ route: ['', 'home'], name: 'student-home', moduleId: 'students/students-home' },
{ route: 'list', name: 'student-list', moduleId: 'students/student-list' },
{ route: 'profile/:id', name: 'student-profile', moduleId: 'students/profile/overview' },
{ route: 'lockers', name: 'student-lockers', moduleId: 'students/lockers/home' }
]);
this.router = router;
}
}
删除活动和您的模块"学生/个人资料/概述" 呼叫主动(params)让学生从api或你想要的任何东西你可以在这里使用被证明的参数。