Ramping up auf Winkel und ui-Router
und kämpft mit in einem anderen Zustand umgeleitet, wenn eine Voraussetzung nicht erfüllt ist:
ich versuchte, mit ein Abfangjäger: (How do I preform a redirect in an angular interceptor).
Aber jemand erwähnte, dass die Handhabung von $ stateChangeState angemessener wäre. Aber ich bin noch läuft in einer Endlosschleife:
/**
* Check here for preconditions of state transitions
*/
$rootScope.$on('$stateChangeStart', function(event, toState) {
// which states in accounts to be selected
var accountRequiredStates = ['user.list', 'user.new'];
if(_.contains(accountRequiredStates, toState.name)){
event.preventDefault();
ApiAccount.customGET('get_current').then(function(resp){
// if I have a selected account, go about your business
if(resp.hasOwnProperty('id')){
$state.go(toState.name);
} else { // prompt user to select account
$state.go('user.select_account');
}
})
}
});
Kann jemand empfehlen, ein besseres Muster (eine, die funktioniert)
Dank!
Hinweis: Ein ähnliches Problem hier anderen Ansatz: How do I preform a redirect in an angular interceptor
Sie sollten das Ereignis nur verhindern, wenn Sie umleiten möchten. Ich denke, '$ state.go' muss in eine '$ timeout'-Funktion eingebunden werden. – zeroflagL
danke - könnten Sie einen Code-Snipit teilen? – Jonathan
Ich denke, Ihre Frage ist mit http://stackoverflow.com/questions/21631896/why-does-thisangular-ui-router-code-cure-an-infinite-loop-in-digest – linkary