Фрагмент HTML, который контролирует представление вкладки:
<li class="presentation" ng-show="currentUserAuthority == LIBRARIAN" >
....
Проблема заключается в том, что эта переменная "currentUserAuthority" не обновляется до тех пор, пока веб-страница не будетинициализируется.Таким образом, все инициализируются как GUEST, а вкладка LIBRARIAN никому не видна.Есть ли способ в AngularJS это исправить?Я знаю, что это было бы легко, если бы у меня было хорошее понимание Javascript / Angular, но я не знаю.
РЕДАКТИРОВАТЬ: Я добавляю код, чтобы уточнить, как и просили.Я унаследовал этот код, поэтому мне нужно прочувствовать его.По сути, есть MYPANEL.html и сопровождающий MYPANEL.js, который имеет контроллер.Проблема, кажется, проблема времени.MYPANEL.js видит currentUserAuthority в качестве GUEST по умолчанию перед тем, как login.js заканчивает получать роль из бэкэнда, и устанавливает currentUserAuthority в LIBRARIAN.У меня есть подпрограмма наблюдения в MYPANEL.js, которая, насколько я понимаю, должна действовать как своего рода слушатель событий и сообщать всем, что переменная изменилась, включая веб-страницу.Код просмотра выглядит следующим образом.
$scope.$watch('GlobalService.currentUserAuthority`,function() {
$scope.currentUserAuthority = GlobalService.currentUserAuthority;
LoggingService.info('WATCH FIRED: current value is '+ $scope.currentUserAuthority);
$scope.$apply();
});
Из журналов видно, что $ watch выполняется только в том порядке, в котором он указан в коде MYPANE.js, и позже, когда я могу проверить, что переменная отслеживаетсяизменилось, эта функция не вызывается.
Так что я делаю не так?Мне нужно уведомить mypane.html, что переменная изменилась, и моя вкладка отображается правильно.Спасибо за любую помощь, которую вы можете оказать.