Como adiar a definição de rotas em Angular.js?

Eu configurei algumas rotas básicas que estão disponíveis para todos os usuários antes que eles efetuem login:

App.config(function ($routeProvider) {
    $routeProvider.
        when('/login', { templateUrl: 'views/login.html', controller: PageStartCtrl.Controller }).
        otherwise({ redirectTo: '/login' });
});

Portanto, a única coisa que o usuário pode fazer é efetuar o login. Após o login do usuário, eu gostaria de registrar rotas adicionais como esta:

$http
  .post('api/Users/Login', {   User: userName, Password: userPassword })
  .success(function (response : any) {
    App.config(function ($routeProvider) {
      $routeProvider
        .when('/dashboard', 
              { templateUrl: 'part/dashboard.html', 
              controller: DashboardCtrl.Controller });
  });

No entanto, suponho que eu deva chamar o método .config apenas uma vez, porque o $ routeProvider é uma instância nova que não sabe nada sobre a rota / login. Depuração adicional mostrou-me que a primeira instância de $ resourceProvider é usada ao resolver a alteração da exibição.

Q: Existe uma maneira de registrar rotas mais tarde?

Solução deAdicione rotas e modelos dinamicamente a $ routeProvider pode funcionar, mas é bastante feio (variável global envolvidanastyGlobalReferenceToRouteProvider).

questionAnswers(2)

yourAnswerToTheQuestion