Also. Ich habe in AngularJS herumgespielt (was mich jede Minute, wenn ich damit arbeite, immer wieder in Erstaunen versetzt) und ich frage mich, ob es bei der Verwendung von $ routeProvider und $ routeParams eine Möglichkeit gibt, die aktuelle URL / den Ort / Deep-Link zu erzwingen die Adressleiste im Browser, um automatisch zu aktualisieren, wenn sich bestimmte Modelle auf der Seite ändern?
Hier ist die App, mit der ich herumspiele.
Es ist die App aus dem Tutorial auf eckigen Website, außer ich habe mit herumgeschraubt und in einigen Funktionen wie Paginierung hinzugefügt. Wenn Sie bemerken, dass Sie nach dem Besuch dieses Links zu #/phones//age/5/0
weitergeleitet werden. Das erste Segment ist der Controller, während die letzten 4 Filter beschreiben, eine Textabfrage, die "Spalte", nach der sortiert werden soll, die Anzahl der Elemente pro Seite und die Seitennummer.
Der Controller übernimmt diese über $ routeParams und aktualisiert die Modelle / Ansichten wie normal, aber wie kann ich erzwingen, dass die URL automatisch geändert wird, wenn der Benutzer die Modelle / Ansichten ändert? Wenn Sie beim ersten Besuch also xoom
in das Suchfeld auf der Seite eingeben, ändert sich die URL in der Adressleiste in http://brandonep.org/angular-test-phonecat/#/phones/xoom/age/5/0
, sobald Sie sie eingeben.
Vielen Dank im Voraus! Und tut mir leid, wenn ich unklar bin, aber ich habe mein Bestes versucht: P
Ich würde Parameter in Ihrer URL verwenden ( /?a=1&b=2
) und dann $routeParams
in Ihren Controller injizieren, um die Parameter beim Laden des Controllers zu interpretieren.
Dann können Sie $watch
verwenden, um Ihr Modell zu beobachten, und jedes Mal, wenn es sich ändert, setzen Sie window.location.url
. Hier ist ein Beispiel: Ссылка
Tags und Links javascript angularjs url-routing