2013-02-21 46 views
24

$locationChangeSuccess$locationChangeStart之間的區別是什麼?

他們都是與window.location有關的未記錄事件。

回答

42

當AngularJS開始通過$location服務($location.path(),$location.search())開始更新瀏覽器的位置時,會觸發$locationChangeStart

應用程序可能會收聽$locationChangeStart事件,並會在其上調用preventDefault()。在這種情況下,第二個事件($locationChangeSuccess)將不會進行廣播。

總之:$locationChangeStart當位置得到更新時觸發。如果第一個操作未被阻止,則緊接着是$locationChangeSuccess

源代碼的相關位在這裏: https://github.com/angular/angular.js/blob/2508b47c1a34dfc834f8fde858574f81af4d287e/src/ng/location.js#L598