Autorização de rota assíncrona angular

O Angular não fornece nenhuma permissão de autorização / acesso no roteamento (estou falando da rota Angular padrão 1.xe não da rota beta 2.0 ou UI). Mas eu tenho que implementá-lo.

O problema que estou tendo é que tenho um serviço que chama o servidor para fornecer essas informações e retorna uma promessa. No entanto, esses dados são obtidos apenas uma vez e armazenados em cache no cliente, mas ainda precisam ser obtidos uma vez.

Agora eu gostaria de lidar$routeChangeStart evento que verifica se a próxima rota define uma propriedade específicaauthorize: someRole. Esse manipulador deve obter esses dados usando meu serviço mencionado anteriormente e agir de acordo com os dados retornados.

Alguma idéia ao lado de adicionarresolve para todas as minhas rotas? Posso fazer isso de alguma forma centralmente? Uma vez para todas as rotas que se aplicam?

Solução final

Com a ajuda da resposta aceita, pude implementar uma solução bastante simples e centralizada que assina a autorização.Clique aqui para vê-lo em ação ou verificar seu código de trabalho interno.

questionAnswers(4)

yourAnswerToTheQuestion