Я разрабатываю backoffice, с угловым, HTML & jQuery, чтобы иметь одностраничное приложение. Я использую аутентификацию пользователя. Я создал файл cookie для «сеанса пользователя», и я могу его уничтожить при выходе пользователя из системы. Но я работаю с Bootstrap, и у меня есть раскрывающееся меню с именем пользователя и меню слева, и я хочу скрыть их, когда пользователь отключен.Как обновить угловые контроллеры при перенаправлении маршрута
У меня есть один контроллер для каждого меню, и если я его выполню, он скроет то, что я хочу.
Пример:
.controller('SessionController', ['$scope', '$http', '$location', '$cookies', function ($scope, $http, $location, $cookies) {
if (typeof $cookies.userSession === "undefined") {
$(".nav.navbar-nav.navbar-right").hide();
$location.path("/");
} else {
$("#userLogin").text($cookies.userSession);
$(".nav.navbar-nav.navbar-right").show();
$location.path("/customers");
}
}])
Я что-то около $ scope.digest() и $ scope.apply() читать, но я не могу это сделать. Может быть, с директивой?
Я не понимаю, что такое «AuthSvc»?Как он может обнаружить действие выхода из системы? – Azuken
'AuthSvc' - это создаваемая вами служба, которая содержит текущий статус пользователя. Вы вызываете его, когда хотите проверить статус пользователя с контроллера (или другой службы) или изменить его (например, выход из системы). Я отредактирую ответ, чтобы показать немного больше. – deitch
Наконец, он отлично работает для выпадающего меню (спасибо!), Но для левой стороны nav, так как он находится в другом контроллере ... Я попытался сделать это с условием 'if (AuthSvc.user.loggedIn) {} ', но он работает только с перезагрузкой страницы ... – Azuken