angularjs $état et $rootScope.$sur($stateChangeStart) question
J'ai passé par une multitude de questions, mais je n'ai pas trouver une solution.
J'ai un problème avec les états de la manipulation.
$urlRouterProvider.otherwise( function($injector, $location) {
var $state = $injector.get("$state");
$state.go("cover");
});
$stateProvider
.state('auth', {
url: '/auth',
templateUrl: '../views/authView.html',
controller: 'AuthController as auth'
})
.state('users', {
url: '/users',
templateUrl: '../views/userView.html',
controller: 'UserController as user'
})
....
cette façon de routage fonctionne dans mon application.
app.run(function($rootScope, $state, $location) {
$rootScope.$on('$stateChangeStart', function(event, toState, fromState) {
//ERROR IS IN THIS BLOCK
if($rootScope.authenticated && $rootScope.onboard == 0) {
//event.preventDefault();
$state.transitionTo("onboard", null, {notify:false});
$state.go('onboard');
}
...
Chaque fois que je changer mon itinéraire, qui bloquent les feux des centaines de fois, mais je veux simplement vérifier si l'utilisateur est authentifié et complété certaines formes ou pas et si pas de rediriger simplement à la forme elle-même.
J'ai essayé différentes manières avec preventDefault()
; ou sans, même problème.
OriginalL'auteur user3581552 | 2015-09-20
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, nous devrions toujours essayer de vérifier si l'utilisateur n'est pas déjà en cours d' (redirigé précédemment) à l'état
'onboard'
. Si oui, arrêtez de tout autre manipulation ( il suffit dereturn
).Vérifier la angularjs ui-routeur génère une boucle infinie
C'est super à voir 😉 Profitez puissant UI-Router, monsieur!
OriginalL'auteur Radim Köhler