Autorización asíncrona de ruta angular

Angular no proporciona ninguna autorización / permiso de acceso en el enrutamiento (estoy hablando de la ruta angular predeterminada 1.xy no beta 2.0 o ruta UI). Pero tengo que implementarlo.

El problema que tengo es que tengo un servicio que llama al servidor para proporcionar esta información y me devuelve una promesa. Sin embargo, estos datos solo se obtienen una vez y luego se almacenan en caché en el cliente, pero aún deben obtenerse una vez.

Ahora me gustaría manejar$routeChangeStart evento que verifica si la siguiente ruta define una propiedad particularauthorize: someRole. Este controlador debería obtener esos datos utilizando mi servicio mencionado anteriormente y actuar en consecuencia a los datos devueltos.

Cualquier idea además de agregarresuelve a todas mis rutas? ¿Puedo hacer esto centralmente de alguna manera? ¿Una vez para todas las rutas que aplican?

Solución final

Con la ayuda de una respuesta aceptada pude implementar una solución bastante simple y centralizada que sincroniza la autorización.haga clic aquí para verlo en acción o verificar su código de trabajo interno.

Respuestas a la pregunta(4)

Su respuesta a la pregunta