Ich gehe durch den problematischen Fluss ...
Was ist seltsam, habe ich das nur beobachtet, wenn html5Mode = true
in Webkit- Firefox wie gewünscht funktioniert ...
. . .
Zuerst sieht mein server.coffee so aus:
%Vor%Im Grunde laden alle Anfragen den Index (mit dem Bootstrang Angular) mit Ausnahme für einen View / Partial-Handler und eine Test-API-Route, die mit Raw JSON antwortet.
. . .
(Ich verwende das Modul ui-router zur Verwaltung von verschachtelten Sichten und UI-Zuständen; es verwendet $urlRouterProvider
, was Angulars $routeProvider
) sehr ähnlich ist
Zweitens sieht mein app.coffee so aus:
%Vor% Da alles asynchron ist, musste ich $window
verwenden, um auf window.location.href
zuzugreifen, um eine Seitenaktualisierung auszulösen, damit der Server die Route handhaben kann.
Also meine Frage, kann ich Links, die Seitenaktualisierungen auslösen, mit Angulars html5Mode
mischen, ohne die Zurück-Schaltfläche zu brechen? Ist das nur ein Webkit Bug und / oder gibt es einen besseren Weg dies zu tun?
Im Idealfall würde die Anwendung von Angular ausgeführt werden, aber Dinge wie die "Über" - oder "Kontakt" -Seite (die nicht dynamisch oder asynchron sein müssen) würden direkt vom Server über normale Seitenaktualisierungen geliefert ...
Hilfe!
Zwei Optionen:
<a />
-Tags verwenden, geben Sie target="_self"
an, um AngularJS mitzuteilen, dass sie ihre Klicks nicht erfassen sollen (diese Links werden normalerweise vom Browser verarbeitet). Dies ist kein Hack; Das ist normal dokumentiertes Verhalten. $window.location = 'foo'
wie du es gemacht hast. Das ist akzeptabel. Tags und Links angularjs coffeescript pushstate routes