2013-06-14 9 views
11

Durante la navigazione nella guida per sviluppatori per AngularJS, ho notato che non torno alla mia ultima posizione di scorrimento quando torno a una pagina utilizzando il pulsante Indietro. Invece, torno subito in cima. Poiché la guida per lo sviluppatore è costruita con AngularJS, temo che, quando creerò la mia applicazione Web con AngularJS, infastidiremo i miei utenti se hanno la stessa esperienza. Perché sta succedendo questo, e come può essere risolto? Devo usare l'API di cronologia di HTML5 in qualche modo?Per l'app Web AngularJS: le pagine Web non ricordano le loro ultime posizioni di scorrimento quando si naviga verso di esse con il pulsante Indietro. Perché? Come risolvere?

Vai alla guida dello sviluppatore e vedere questo comportamento da soli: http://docs.angularjs.org/guide/directive

+2

In genere la maggior parte dei browser non attendono che xhrs esegua lo "scorrimento", quindi quando si preme il pulsante Indietro la pagina viene fatta "scorrere" prima che il contenuto sia "caricato". Non ho ancora studiato nessuna soluzione, però. – DerekR

risposta

8

Se si vuole risolvere il problema, mi viene in mente un'idea di mantenere la traccia di ogni posizione di scorrimento percorso in una mappa (in servizio o in a rootScope): quando si esce dalla pagina (listener $routeChangeStart) è sufficiente salvare la posizione di scorrimento insieme al percorso percorso.

E quando si arriva a una pagina, è possibile controllare se un record in una mappa esiste per il percorso di percorso e la finestra nella posizione desiderata scorrere sul $routeChangeSuccess evento

Problemi correlati