Czy jest jakiś sposób, jak połączyć hash i non-hash adresów URL w aplikacji backbone.js?Kombajny hash i non-hash URL w backbone.js
Ustawiono Backbone.history.start({pushState: true})
. Kiedy użytkownik kliknie na jakiś link, pobieram dane JSON z serwera, aktualizuję stronę i dzwonię pod numer Backbone.history.navigate
, aby zmienić adres URL przeglądarki (na przykład z example.com/zlinsky/kampan/mf/
na example.com/moravskoslezsky/kampan/mf/
).
Jeśli użytkownik skopiuje adres URL z przeglądarki i otworzy w drugiej zakładce, zobaczy tę samą stronę (więc każda strona zaktualizowana w ten sposób ma odpowiednią stronę na serwerze). Właśnie tego chcę.
Ale teraz mam problem ...
Mam kilka <select>
na stronie też. Kiedy użytkownik zmienia w nich wartość, wprowadzam dynamiczne zmiany na stronie (bez pobierania JSON z serwera, aktualizacje są wykonywane tylko po stronie klienta). Chciałbym zmienić adresy URL zgodnie z <select>
, na przykład na example.com/moravskoslezsky/kampan/mf/#state1
(tak, gdy ktoś wyśle ten URL, druga strona zobaczy tę samą stronę, w tym samym stanie, co nadawca).
Nie mogłem znaleźć sposobu, jak to zrobić w Backbone.js. Jeśli ustawię pushState: true
na Backbone.history
, Router
ignoruj znaczniki hash.
Jeśli ustawię pushState: false
, nie jestem w stanie ustawić adresów URL, jak opisuję w pierwszym akapicie powyżej.
Dziękuję za podpowiedź.
byłaś w stanie rozwiązać ten problem? Mam dokładnie ten sam problem. gdy parametr pushState ma wartość true, nie mam adresów URL zawierających fragmenty hash; hash jest całkowicie ignorowany. – Fedor