What is event.preventDefault preventing despite the event? <p>One goal of my main controller is to prevent users from going to urls of other users. That works perfectly fine with listening on $locationChangeStart and using its events preventDefault method. Unfortunately calling this method has the strange side effect of somehow "interrupting" the work of the function "handleNotification" which has the goal of notifying the user for 2 seconds that she or he has done something illegitimate. If I comment out event.preventDefault(), everything works as expected. So my question is: What is the 'scope' of the 'default' preventDefault prevents that I don't have on my mind and which keeps the handleNotification function from working properly? </p> <pre><code>$scope.$on('$locationChangeStart', function(event, newUrl, oldUrl) { ifUserIs('loggedIn', function() { if (newUrl.split('#/users/')[1] !== $scope.user.userId) { handleNotification('alert', 'You are not allowed to go here.'); event.preventDefault(); } }); }); function handleNotification (type, message) { $scope.notice = { content: message, type: type }; $timeout(function() { delete $scope.notice; return true; }, 2000); } </code></pre>