Ich habe einen Haupt-App-Router und mehrere Kind-Router. Ich möchte die Option haben, die untergeordnete Route anzugeben, die beim Navigieren von der übergeordneten Route geöffnet werden soll.Aurelia Child Router Redirect auf bestimmte Route
Eltern Router:
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' }
]);
}
Kinder Router für Studenten:
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});
}
}
}
Das obige Szenario (navigateToRoute()
innerhalb activate verwenden) nicht funktioniert, noch bin ich sicher, dass es das ist bester Weg. Wie kann ich direkt vom Haupt-App-Router zum Student-Profil-Bildschirm navigieren, wenn ich einen ID-Parameter einschließe?
hmm, ich frage mich, ob das ein Fehler ist. –
Siehe https://github.com/aurelia/router/issues/89 und https://github.com/aurelia/router/issues/90, letzteres hört sich an, als gäbe es eine mögliche Arbeit mit einem Paket, aber ich habe es nicht getan nicht zu viel hineingraben. Ich denke, dass die Kinderrouten noch nicht geladen sind, weshalb die Verwendung des Namens nicht funktioniert – mgiesa
Eigentlich habe ich das Problem vielleicht falsch verstanden. Anstatt das von der Student-Seite umzuleiten, funktioniert das, wenn Sie das auf die Homepage (die Standard-Landing Page, Student-Home) verschieben? Sie könnten es auch in CanActivate verschieben und eine RedirectToRoute zurückgeben, anstatt über den Router zu navigieren. – mgiesa