$urlRouter
(service in module ui.router.router
)
Triggers an update; the same update that happens when the address bar url changes, aka $locationChangeSuccess.
This method is useful when you need to use preventDefault() on the $locationChangeSuccess event,
perform some custom logic (route protection, auth, config, redirection, etc) and then finally proceed
with the transition by calling $urlRouter.sync().
angular.module('app', ['ui.router']);
.run(function($rootScope, $urlRouter) {
$rootScope.$on('$locationChangeSuccess', function(evt) {
// Halt state change from even starting
evt.preventDefault();
// Perform custom logic
var meetsRequirement = ...
// Continue with the update and state transition if logic allows
if (meetsRequirement) $urlRouter.sync();
});
});