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 le référencer dans n'importe lequel de vos contrôleurs. Le code suivant surveille les modifications d'une valeur du service (en appelant la fonction spécifiée), puis synchronise les valeurs modifiées avec l'étendue.
app.controller( 'MainCtrl', function( $scope, AuthService ) {
$scope.$watch( AuthService.isLoggedIn, function ( isLoggedIn ) {
$scope.isLoggedIn = isLoggedIn;
$scope.currentUser = AuthService.currentUser();
});
});
Et puis, bien sûr, vous pouvez utiliser ces informations comme bon vous semble; par exemple dans les directives, dans les modèles, etc. Vous pouvez répéter ceci (personnalisé selon ce que vous devez faire) dans vos contrôleurs de menu, etc. Tout sera mis à jour automatiquement lorsque vous changez l'état du service.
Tout ce qui est plus spécifique dépend de votre implémentation.
J'espère que cela t'aides!