Ich möchte den Benutzer übergeben, während der AuthorizeStep
entweder App class
und dann zu home module
gefunden.Aurelia: Wie kann ich während eines Router-Pipeline-Schritts eine Variable an diesen Router binden?
Hier ist, was ich habe:
export class App {
configureRouter(config, router) {
config.addPipelineStep('authorize', AuthorizeStep);
config.map([
{route: ['', ':filter'], name: "", moduleId: 'welcome'}
{route: 'home', name: "home", moduleId: 'home' auth:true}
]);
this.router = router;
}
}
class AuthorizeStep {
run(routingContext, next) {
if (routingContext.nextInstructions.some(i => i.config.auth)) {
this.client.get('auth/login')
.then(response => {
this.user = response.content;
});
}
return next();
}
}
Nizza Lösung! –
Können Sie dies mit einem Kind-Router verbinden? Ich erhalte Fehler: Pipeline-Schritte können nur zum Root-Router hinzugefügt werden. – smiggleworth
Nein. "Aurelia hat zwei Router-Klassen, AppRouter und Router. AppRouter erweitert die Router-Klasse und ist der Hauptanwendungs-Router. Router wird für alle untergeordneten Router einschließlich verschachtelter Kind-Router verwendet. Einer der Hauptunterschiede zwischen den beiden ist nur Pipelines auf dem AppRouter und nicht auf untergeordneten Routern zulässig. " http://aurelia.io/hub.html#/doc/article/aurelia/router/latest/router-configuration/8 – Technetium