Rückgrat.Geschichte.navigate(url,{trigger:true, replace: true})
Ich mit dieser Methode navigieren Sie zur url, die ein Ereignis auslösen, und nicht push-url auf die browser-Geschichte. Aber Backbone.history.navigate(url,{trigger:true, replace: true})
ersetzen Vorherige url aus der Geschichte.
Beispiel: Browser-hystory
Bevor
localhost:port/url
Backbone.history.navigate(url + '/list',{ trigger:true, replace: true })
Erwartet: trigger-Ereignis auf der route url + '/list'
und Browser-history localhost:port/url
Tatsächlich: auslösendes Ereignis, aber die Browser-history localhost:port/#url/list
.
Bisherige url ersetzt
- Ist das problem der
#
in der url? Die Frage ist nicht sehr klar. - Es scheint, die Antwort unten sollten akzeptiert werden, wie die richtige Antwort, bitte beachten Sie zu haben schien falsch interpretiert die Bedeutung der ersetzen---es ersetzt den Eintrag in der Geschichte (die Adresszeile ändert sich immer, zur navigation)... aber die navigation ist nicht die einzige Möglichkeit, aktualisieren Sie Ihre app!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist, was ich denke, du hast Fragen, bitte mich korrigieren, wenn ich falsch bin:
"Wie kann ich die trigger eine route in Backbone-ohne Update-URL?"
Schnelle Antwort:
Können Sie nicht. Die
replace
option wird auch nicht helfen, Sie gibt es. Hier ist ein Ausschnitt aus der Dokumentation:Wie Sie sehen können, ersetzen Sie nicht beeinflussen, das update auf die URL.
Nachfolgende Antwort:
Wenn Sie nicht möchten, dass die URL zu aktualisieren, das macht mich denken, dass der eine Liste anzeigt, in Ihrer Anwendung ist nicht ein major-update auf Ihren Zustand der Anwendung. Wenn das wahr ist, dann sollten Sie nicht, meiner Erfahrung, verwenden Sie die
Backbone.history
Objekt zu verwalten.Wenn Sie genannt diese Funktionalität entweder direkt (z.B. durch eine Funktion) oder indirekt (z.B. durch Absendung einer Veranstaltung), dann Ihre app aktualisieren würde, und Ihre URL nicht.
Ich mag Derick Baily ' s Post auf, wie Sie Ihre router-Struktur. Es ist etwas langatmig, aber lesenswert.
Schauen Sie sich auch David Sulc ' s repo für "Eine Sanfte Einführung in die Marionette". Ich weiß, dass es mit Marionette.AppRouter Objekte, aber die Prinzipien sind immer noch sound. Schauen Sie sich diese Datei für ein Beispiel.
Als eine Randnotiz, wenn der
#
ist das problem; check out diese, SO die Antwort. Seid aber trotzdem vorsichtig, diehashChange
option ist vor allem für x-browser-Kompatibilität laut der docs.