Verifying route preconditions prior to loading controller

Viewed 1092

I'm writing a single page application in Angular, specifically angular.dart, but I'm assuming this question still applies to AngularJS.

Take for example the following routes:

/login - Expects nobody to be logged in. If someone is authenticated but not registered, redirect to "register" route, if they are registered, redirect to the "home" route.

/register - Expects an authenticated user who hasn't finished the registration process. If not authenticated, redirect to login. If is authenticated, redirect to home.

/home - Expects an authenticated and registered user. If not authenticated, redirect to "login" route, if not registered, redirect to "register" route.

I've done quite a bit of searching but cannot find a built-in or idiomatic way to check to make sure that certain preconditions are met before loading the controller associated with a particular route, and to redirect appropriately when these preconditions are not met.

Any help would be greatly appreciated!

4 Answers
Related