Добрый день.
Хочу в шаблоне проверять авторизован ли пользователь и на основании этого показывать или скрывать элементы навигации. Шаблон такой:
<ul class="nav nav-tabs" ng-controller="AuthController">
{% verbatim %}
<li ng-class="getClass('/')"><a href="#/">Главная</a></li>
<li ng-hide="auth" ng-class="getClass('/login')"><a href="#/login">Войти</a></li>
<li ng-show="auth" ng-class="getClass('/logout')"><a href="#/logout" ng-click="logout()">Выйти</a></li>
<li ><a href="">{{ auth }}</a></li>
{% endverbatim %}
</ul>
Контролер:
function AuthController($scope, $location, $http){
$scope.logout = function() {
$http.get('api/auth/logout/').success(function(){
$scope.auth = false;
$location.path('/login');
});
};
$scope.login = function() {
$http({
method: 'POST',
url: 'api/auth/login/',
data: $scope.user
})
.success(function(data){
$scope.auth = true;
$location.path('/');
});
}
}
После успешной аутентификации создаю переменную в scope с именем пользователя. В случае логаута соответственно назначаю андефайнед.
Однако в шаблоне переменная auth пустая, $scope.auth = data.username; работает корректно