Ho un'applicazione a pagina singola che utilizza Knockout.js per l'associazione dei dati e Sammy.js per il routing di URL lato client (basati su hash).Sammy.js instradamenti non attivati dai collegamenti a eliminazione diretta in IE10
Tuttavia, sto riscontrando un problema strano in Internet Explorer: a volte i collegamenti, quando si fa clic, modificano l'URL nella barra degli indirizzi del browser, ma la route Sammy corrispondente non verrà eseguita.
Non succede ogni volta (ma riesco a riprodurre costantemente l'errore), e accade solo in IE10 (Chrome funziona bene ogni volta). Sembra che sia correlato anche a Knockout, dal momento che una serie di collegamenti hardcoded non presenta lo stesso problema.
Per illustrare, ho strappato via tutto, ma il minimo indispensabile per ricreare il problema e ha creato due esempi jsbin:
Esempio 1 (con Knockout):http://jsbin.com/aretis/2/
di vedere il problema, apri il link sopra e fai nuovamente clic su "Record # 1", quindi su "Baz", quindi su "Record # 1". L'URL per il record 1 verrà visualizzato nella barra degli indirizzi, ma la rotta per quel record non verrà aggiunta all'elenco.
Esempio 2 (senza Knockout):http://jsbin.com/amivoq/1/
In questo esempio, ho un elenco statico di link di registrazione al posto di un elenco di dati-bound. Facendo clic su uno qualsiasi dei link (in qualsiasi ordine), tale percorso verrà aggiunto all'elenco (come dovrebbe).
Un promemoria che questi devono essere eseguiti in IE per riprodurre il problema.
Qualche idea?
Ho lo stesso problema in un'app in questo momento con IE 10. Avete esposto un metodo di attivazione? Viene chiamato quando si cambia avanti e indietro? – Boone
Ho risolto (forse "aggirato" è una frase migliore) il problema semplicemente legando a $ (window) .on ("hashchange") e scrivendo il mio router URL. Le mie esigenze erano molto semplici e sospetto che stavo utilizzando solo il 10% delle capacità di Sammy.js. Sono ancora curioso sulla fonte del mio problema, quindi sto lasciando questa domanda. –
Riesci a ricreare l'esempio 1 con sammy JS non ancora terminato? Ho anche creato il mio router basato su SammyJS. @Matt Peterson, grazie per il suggerimento. Non ero a conoscenza dell'evento 'hashchange'. Stavo controllando le finestre.posizione con un timer :). – Damien