Qu'est-ce que 'moins cher', au niveau des performances $diffusion $ou regarder

J'ai une situation dans mon application, où j'ai besoin de recharger le menu à chaque fois le rôle des modifications de l'utilisateur(Un utilisateur peut avoir des rôles dans plusieurs entreprises).

Je me demandais quelle est la meilleure façon d'aborder cette question.

actuellement, je suis en train de faire les suivants:

app.controller('menuLoadingCtrl', function($location, $scope, authService){
    $scope.model.initialRole = authService.getRole();
    $scope.$watch(function(){return authService.getRole()}, function(val){
        if(val && val != $scope.model.initialRole){
                $scope.layout.menuSrc = 'partials/menu.html';
        }
    });
})

Simple redirection de l'utilisateur vers le menu de chargement de la vue, et à partir de là, retour à l'affichage du menu une fois le rôle est fini de se charger.
J'ai ce enveloppé dans une fonction:

 $scope.layout.reloadMenu = function(){
        $scope.layout.menuSrc = 'partials/menuLoading.html';
    }

que j'appelle à tout scénario à qui je voudrais recharger le menu.

Je me demandais si je peux rendre ce processus plus automatique par la diffusion de cet événement à partir du service sur l' $rootScope, puis l'écouter dans le contrôleur.

Toutes les pensées\conseils sur ce qui sera grandement apprécié.