2013-02-21 9 views
24

Qual è la differenza tra $locationChangeSuccess e $locationChangeStart?

Sono entrambi eventi non documentati relativi a window.location.

risposta

42

Il $locationChangeStart viene attivato quando AngularJS inizia ad aggiornare la posizione del browser sulla base di mutazioni fatto tramite $location servizio ($location.path(), $location.search()).

Potrebbe accadere che un'applicazione ascolti l'evento $locationChangeStart e chiamerà lo preventDefault() su di esso. In questo caso il secondo evento ($locationChangeSuccess) non trasmetterà.

In breve: $locationChangeStart si attiva quando la posizione viene aggiornata. È seguito da $locationChangeSuccess se la prima azione non è stata impedita.

bit rilevanti del codice sorgente sono qui: https://github.com/angular/angular.js/blob/2508b47c1a34dfc834f8fde858574f81af4d287e/src/ng/location.js#L598