My problem is actually very similar to the one found here:
AngularJs - cancel route change event
In short, I\'m using $routeChangeStart and trying to change
One approach that comes to mind is trying to use the resolve parameter for this:
var resolver = function(access) {
return {
load: function($q) {
if (access) { // fire $routeChangeSuccess
var deferred = $q.defer();
deferred.resolve();
return deferred.promise;
} else { // fire $routeChangeError
return $q.reject("/login");
}
}
}
}
$routeProvider.
when('/login', { controller: 'LoginCtrl', templateUrl: '/app/partial/login.html', resolve: resolver(false)}).
when('/home', { controller: 'HomeCtrl', templateUrl: '/app/partial/home.html', resolve: resolver(true)}).
otherwise({ redirectTo: '/login' });
Please note that I haven't tested the code above but I'm doing similar stuff in my projects.