What's the difference between $locationChangeS

2019-02-01 13:25发布

问题:

What's the difference between $locationChangeSuccess and $locationChangeStart?

They are both undocumented events related to window.location.

回答1:

The $locationChangeStart is fired when AngularJS starts to update browser's location based on mutations done via $location service ($location.path(), $location.search()).

It might happen that an application will listen to the $locationChangeStart event and will call preventDefault() on it. In this case the second event ($locationChangeSuccess) won't be broadcasting.

In short: $locationChangeStart fires when the location gets updated. It is followed by $locationChangeSuccess if the first action wasn't prevented.

Relevant bits of the source code are here: https://github.com/angular/angular.js/blob/2508b47c1a34dfc834f8fde858574f81af4d287e/src/ng/location.js#L598