Wie kann ich auf die nächsten Routeninformationen innen „canDeactivate“ guard im angular2 neuen RouterZugang nächste Routeninformationen innerhalb canDeactivate Wache in neuen angular2 Router
5
A
Antwort
0
Ich habe auf dem exakt gleiche Problem stecken geblieben. In meinem Fall wird meine canDeactivate-Logik die nächste Route bedingt abbrechen/umleiten. An dieser Stelle hoffentlich gibt es eine bessere Art und Weise, ich die folgende Lösung
- Aus meiner Komponente, Haken in die
Router
Ereignisse (insbesondereRoutesRecognized
) die Route für eine spätere Verwendung aufzuzeichnen. - Implementieren Sie die
canDeactivate
und verwenden Sie die gespeicherten Routendaten, um wahr oder falsch zurückzugeben.
ngOnInit(): void {
\t this.tabbedSearch = this.profilesService.currentProfile.tabbedSearch;
\t this.router.events
\t \t .filter(e => e instanceof RoutesRecognized)
\t \t .map(e => <RoutesRecognized> e)
\t \t .subscribe((e) => {
\t \t \t this.lastRoute = e.state.root.firstChild.routeConfig.path;
\t \t \t this.lastParams = e.state.root.firstChild.params;
\t \t });
}
public canDeactivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
\t // do not navigate away if we are doing tabbed search AND the new route is the article details view
\t if (this.tabbedSearch && this.lastRoute == "article/details/:type/:id/:version") {
\t \t this.tabbedDetails.push(Object.create(this.lastParams));
\t \t return false;
\t }
\t else {
\t \t return true;
\t }
}
(Hinweis: Sie nicht führen Sie den Code-Schnipsel, aber aus irgendeinem Grund die Code-Beispiel Formatierung nicht richtig gemacht wird.)
ich wirklich, wirklich nicht mögen Dies hat aber keinen anderen Weg gefunden.