Асинхронная авторизация по угловому маршруту

Angular не предоставляет никаких прав доступа / авторизации при маршрутизации (я говорю по умолчанию Angular route 1.x, а не beta 2.0 или UI route). Но я должен реализовать это.

У меня проблема в том, что у меня есть служба, которая вызывает сервер для предоставления этой информации и возвращает обещание. Эти данные, однако, получают только один раз, а затем кэшируют на клиенте, но их все же необходимо получить один раз.

Я бы сейчас хотел справиться$routeChangeStart событие, которое проверяет, определяет ли следующий маршрут конкретное свойствоauthorize: someRole, Затем этот обработчик должен получить эти данные, используя мой ранее упомянутый сервис, и действовать в соответствии с возвращенными данными.

Любые идеи помимо добавлениясборник законов на все мои маршруты? Могу ли я сделать это как-то централизованно? Один раз для всех применяемых маршрутов?

Окончательное решение

С помощью принятого ответа мне удалось реализовать довольно простое и централизованное решение, которое выполняет асинхронную авторизацию.кликните сюда чтобы увидеть его в действии или проверить его внутренний рабочий код.

Ответы на вопрос(2)

Ваш ответ на вопрос