Angular Route Async-Autorisierung

Angular bietet keine Berechtigung / Zugriffsberechtigung für das Routing (ich spreche von Angular Route 1.x und nicht von Beta 2.0 oder UI Route). Aber ich muss es implementieren.

Das Problem, das ich habe, ist, dass ich einen Service habe, der den Server anruft, um diese Informationen bereitzustellen, und ein Versprechen zurückgibt. Diese Daten werden jedoch nur einmal abgerufen und dann auf dem Client zwischengespeichert, müssen jedoch noch einmal abgerufen werden.

Ich würde jetzt gerne mit @ umgeh$routeChangeStart Ereignis, das prüft, ob die nächste Route eine bestimmte Eigenschaft definiertauthorize: someRole. Dieser Handler sollte diese Daten dann über meinen zuvor genannten Dienst abrufen und entsprechend auf zurückgegebene Daten reagieren.

Irgendwelche Ideen neben dem Hinzufügen von löst @ a zu allen meinen Routen? Kann ich das irgendwie zentral machen? Einmal für alle zutreffenden Routen?

Endgültige Lösun

Mit Hilfe der akzeptierten Antwort konnte ich eine ziemlich einfache und zentralisierte Lösung implementieren, die asynchrone Autorisierung ausführt.Klicke hie um es in Aktion zu sehen oder seinen inneren Arbeitscode zu überprüfen.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage