Automatische Aktualisierung der Deep-Link-URL, wenn sich das Modell in Angular ändert

8

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

    
Brandon 08.07.2012, 10:28
quelle

1 Antwort

4

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: Ссылка

    
Andrew Joslin 09.07.2012, 01:31
quelle