Мне нужно отменить мой маршрут в случае неправильного входа в систему, это мой код ANGULARJS NG-ROUTE:
monApp.config(function ($routeProvider, $locationProvider){
var rsf = { // This function tells if user is logged or not
"check":function(stockeUtilisateur,$location,Notification){
u = stockeUtilisateur.getUtilisateur();
if(u.role=='admin'||u.role=='utilisateur'){
Notification.success("Youre logged");
}
else{
$location.path('/accueil'); //redirect user to home.
Notification.error("bad password");
}
}
};
$routeProvider
.when('/accueil', {
templateUrl: 'vues/accueil.html',
controller: 'neutreCtrl'
})
.when('/compte', {
templateUrl: 'vues/compte.html',
controller: 'compteCtrl',
resolve:rsf
})
.otherwise({redirectTo: '/accueil'});
})
Проблема в том, что я не хочу использовать $location.path()
в случае сбоя входа в систему, потому что он перезагружает всю страницу, в то время как мне просто нужно оставаться на маршруте и просто отменить маршрут, если логин пользователя неверен.
Я не знаю, какой код я мог бы использовать, я пробовал это вместо $location.path()
: event.preventDefault();
, но это не работает.
Я также пробовал resolve.cancel();
, но это тоже не работает, snif !
Если я удалю $location.path()
, разрешение по-прежнему будет работать, и я смогу видеть представление «compte», пока пользователь не вошел в систему.
Другими словами, я не хочу, чтобы меня перенаправляли, но я хотел бы просто ничего не делать в случае неправильного пароля.
Может быть, у вас есть идея?
Спасибо .
$locationChangeStart
следует использовать предотвращение по умолчанию. weblogs.asp.net/dwahlin/ stackoverflow.com/questions/16344223/ - person Jordan.J.D   schedule 18.07.2017