У меня есть ситуация в моем приложении, где мне нужно перезагружать меню каждый раз, когда меняется роль пользователя (у одного пользователя могут быть роли в нескольких компаниях).
Мне было интересно, как лучше всего подойти к этой проблеме.
в настоящее время я делаю следующее:
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';
}
});
})
Простая переадресация пользователя в режим загрузки меню, а оттуда - возврат к просмотру меню после загрузки роли. У меня это завернуто в функцию:
$scope.layout.reloadMenu = function(){
$scope.layout.menuSrc = 'partials/menuLoading.html';
}
который я вызываю при любом сценарии, в котором я хотел бы перезагрузить меню.
Мне было интересно, могу ли я сделать этот процесс более автоматическим, передав это событие из службы на $rootScope, а затем прослушивая его в контроллере.
Любые мысли\советы по этому поводу будут очень благодарны.