2017-01-10 1 views
1

Mein Programm ist eine Modifikation des erweiterten Tutorials für Angular 2 "Routing". Ich kann mithilfe meiner Formularsteuerelemente zu den richtigen Orten navigieren. Aber die Verwendung der URL-Leiste gibt mir Probleme.Angular 2 Verwendung der URL-Leiste führt zu unerwünschtem Neuladen der Anwendung

Angenommen, ich habe zuvor zu einem Feature navigiert, so dass sowohl Login und Lazy Loading aufgetreten ist. Wenn ich seine Adresse in die URL eintippe, die ich mit meiner Anmeldungsseite präsentiere. Verfolgen Sie meinen Code Ich fange wieder ganz von vorne an und bisher lazy-loaded Module sind dem System nun unbekannt.

Oder verwenden Sie die Lager Anwendung von der Plunker Seite. Sobald ich in dem Krisenzentrum # 2 Edit-Seite navigiert habe Typ I in die URL-Leiste:

http://localhost:8000/crisis-center/1 

Ich erhalte diese Konsole Fehler:

[email protected]?main=browser:1274 GET http://localhost:8000/crisis-center/crisis-center/app/main.ts 

Mein Ziel ist es, dass der Zugang von Krisenzentrum/1 sollte mir diesen Datensatz auf der Record-Editor-Seite zeigen, was das übliche Verhalten von Angular 2-Controls ist. Stattdessen beginnt die App neu zu laden. Es findet nicht localhost: 8000/app/main.ts und lädt stattdessen localhost: 8000/crisis-center/crisis-center/app/main.ts.

Ich vermute, dass es etwas gibt, was ich mit lokalen Browserspeicher tun soll, aber was?

Danke, Jerome.

Antwort

1

Angular verwendet die pushState-API. Nur wenn diese API verwendet wird, kann die URL geändert werden, ohne dass die Seite neu geladen wird.

Wenn Sie die URL manuell ändern, lädt der Browser die URL erneut. Sie oder Angular können nichts dagegen tun.

Siehe auch https://developer.mozilla.org/en-US/docs/Web/API/History_API

+0

, dass der Benutzer das Verhalten in einer Schräg Anwendung zu beschränken scheint. Wenn ich * wirklich * wollte, könnte ich den Benutzerzustand im lokalen Speicher speichern und beim Start ein wenig vorladen. Ich tausche eine Verhaltensänderung für Sicherheitsprobleme. Oh, gut ... –

+0

Wie erwähnt, ist dies nicht mit Angular verwandt. Es gibt keine Möglichkeit, dies zu verhindern, da der Browser URL-Änderungen verarbeitet. Ja, Sie können den Benutzerstatus im lokalen Speicher speichern. –

Verwandte Themen