0

Bei der Durchführung des angular2 Tutorials "Tour of Heros" habe ich gerade bemerkt, dass ihr Spa-Router ohne ein abschließendes Hash-Zeichen (#) in der URL funktioniert (wie Kendo Spa Router zum Beispiel).Wie funktioniert das Spa-Routing von angular2 ohne das Hash-Zeichen in der URL?

Wie funktioniert es mit angular2, ohne dass der Browser einen vollständigen Neuladen der Seite durchführt?

+0

Mögliche Duplikat [Ändern Sie die URL ohne Neuladen der Seite] (http://stackoverflow.com/questions/824349/modify-the- URL-ohne-Neuladen-der-Seite) – estus

+0

@estus, nicht doppelt Ich denke, weil ich frage, wie es speziell auf das Framework angular2 funktioniert. Sie mischen Themen hier. –

+0

Die Frage klingt wie Sie sind nicht vertraut mit dem Konzept der History API und PushState. Die doppelte Frage erklärt im Detail, wie es in einfachem JS getan wird. Und Sie können sicher sein, dass Angular 2 das Gleiche unter der Haube tut. – estus

Antwort

0

Es nutzt die modernen Browser-Funktionen, um den Trick zu machen.

lesen Sie die offiziellen eckigen Dokumente.

https://angular.io/docs/ts/latest/guide/router.html#!#browser-url-styles

Anhang: LocationStrategy und Browser-URL Arten

Wenn der Router mit einer neuen Komponente Ansicht navigiert, aktualisiert er die Position des Browser und Geschichte mit einer URL für diese Ansicht. Dies ist eine streng lokale URL. Der Browser sollte diese URL nicht an den Server senden und die Seite nicht neu laden.

Moderne HTML 5-Browser unterstützen history.pushState, eine Technik, die den Standort und Verlauf eines Browsers ändert, ohne eine Serverseitenanforderung auszulösen. Der Router kann eine "natürliche" URL erstellen, die nicht von einer URL zu unterscheiden ist, die andernfalls eine Seitenladung erfordern würde.

Hier ist das Krisenzentrum URL in diesem "HTML 5 pushstate" style:

Verwandte Themen