Le moyen le plus simple d'y parvenir est d'utiliser un service. Par exemple :
app.factory( 'AuthService', function() {
var currentUser;
return {
login: function() { ... },
logout: function() { ... },
isLoggedIn: function() { ... },
currentUser: function() { return currentUser; }
...
};
});
Vous pouvez ensuite y faire référence dans n'importe lequel de vos contrôleurs. Le code suivant surveille les changements dans une valeur du service (en appelant la fonction spécifiée) et synchronise ensuite les valeurs modifiées avec la portée.
app.controller( 'MainCtrl', function( $scope, AuthService ) {
$scope.$watch( AuthService.isLoggedIn, function ( isLoggedIn ) {
$scope.isLoggedIn = isLoggedIn;
$scope.currentUser = AuthService.currentUser();
});
});
Ensuite, bien sûr, vous pouvez utiliser ces informations comme bon vous semble, par exemple dans des directives, des modèles, etc. Vous pouvez répéter cela (en fonction de vos besoins) dans vos contrôleurs de menu, etc. Tout cela sera mis à jour automatiquement lorsque vous modifierez l'état du service.
Tout ce qui est plus spécifique dépend de votre mise en œuvre.
J'espère que cela vous aidera !