angularjs $Speicherort.hash-macht ##, aber ich brauche #
AngularJS 1.2.0 (aber ältere Versionen haben das gleiche problem)
Habe ich eine web-app mit einigen widgets und speichern wollen Ihren Staat in die URL.
Ich mache das jetzt mit $location.hash('param1=1¶m2=678')
Befehl. Aber ich bekomme die url wie: domain.com/##param1=1¶m2=678
Es funktioniert ok, ich kann wieder Stand meiner app. Ein problem, das ich habe, ist, wenn jemand auf so einen link, zum Beispiel E-mail-Anwendung, die Ihre browser codiert eines hashes mit /23 und so ist meine app schief geht. Wie kann ich dieses Problem lösen? Dank
Hier ist plunk: http://plnkr.co/edit/VVjEUzROou6hu8B8sURa?p=preview
Sie müssen es öffnen sich im neuen Fenster, um in der Lage zu testen hashes
- vielleicht, weil " href="#" in Ihrem Anker-tag? versuchen Sie mit href="javascript:" - statt.
- Ich habe gerade bemerkt, dass dasselbe Verhalten (Doppel-hash"), geschieht in der offiziellen docs, seltsam
Du musst angemeldet sein, um einen Kommentar abzugeben.
für standard-hash-Standorten in Winkel, die Sie verwenden
als Winkel eingerichtet ist, zu denken, der erste hash-Staat als die primäre url oder den Pfad für die app. Die Lage.hash() setups eine sekundäre hash auf der primär-hash-Zustand (Pfad)
location.hash = 'myhash';
Dies ist nicht die beste Antwort, aber könnten Sie versuchen, zu injizieren $locationProvider und Satz:
So eckig läuft im HTML5-Modus und es nicht verwenden hashbangs. Ich empfehle diese Frage ALSO für mehr info.
Versuchen Sie es mit
statt.
Wenn Sie mit komplexen Zustand können Sie auch direkt liefern ein Objekt, um die such-Methode: