Ich habe versucht, einen Zuhörer zu implementieren, die auf das Zustandsänderungsereignis so etwas wie dies, indem Sie hören konnten:AngularJS ui-Router Zustandsänderung Zuhörer
$rootScope.$on('$stateChangeStart', function (event) {
if (!AuthenticationService.isLoggedIn()) {
console.log('DENY');
event.preventDefault();
$state.go('login');
}
else {
console.log('ALLOW');
$state.go('/home');
}
});
Aber das wird nicht funktionieren wie erwähnt here, dass es ist veraltet und transitions
sollte anstelle von ihnen verwendet werden, so habe ich versucht, so etwas wie:
$transitions.onStart({}, function() {
if (!AuthenticationService.isLoggedIn()) {
console.log('DENY');
return $state.target('login');
}
else {
console.log('ALLOW');
return $state.target('home');
}
});
Dies ist ein Fehler heraus geben:
app.js:21 Error: Too many Transition redirects (20+)
at Transition.run (app.js:18)
at app.js:21
at processQueue (app.js:10)
at app.js:10
at Scope.$eval (app.js:10)
at Scope.$digest (app.js:10)
at Scope.$apply (app.js:10)
at app.js:6
at Object.invoke (app.js:7)
at doBootstrap (app.js:6)StateService._defaultErrorHandler @ app.js:21
Irgendwelche Ideen, was schief gehen könnte? Danke im Voraus.
haben Sie versucht, diese [vorgeschlagene Option] (https: // GitHub. com/eckig-ui/ui-router/issues/2720 # issuecomment-216268572)? –