2016-03-08 3 views
0

Как отображать список меню только при входе пользователя на сайт. Но теперь пользователь может видеть меню, указав прямой URL. Если пользователь вошел в систему то только он сможет увидеть список меню и все. Кто-нибудь может это проверить. HTML код:Показать определенную страницу только после входа в систему angularjs

<html lang="en" ng-app="accountantApp"> 
<div class="container jumbotron" ng-init= "getAddressInfo()" ng-controller="AddressInfoController" id="homejumbotron"> 
    <div class="col-sm-12 primary"> 
     <div class="col-sm-2"><a href="#" class="ui-btn ui-shadow ui-corner-all personal">PERSONALINFO</a></div> 
     <div class="col-sm-2"><a href="login.php" class="ui-btn ui-shadow ui-corner-all">LOGOUT</a></div> 
    </div> 

Js:

var app = angular.module('accountantApp', ['ui.bootstrap']); 
app.controller('AddressInfoController', function($scope,$http,$timeout) { 
$scope.submitAddressInfo = function(isValid, user) { 
    if (isValid) { 
     console.log("address info::"+$scope.user); 
     $http({ 
       method : 'POST', 
       url  : '../model/addaddressinfo.php',    
       headers : { 
          'Content-Type': 'application/json' 
          }, 
       data  : {'addressinfo': $scope.user, 'action': 'Save'} 

      }).success(function(data, status, headers) { 

       console.log("Response data:"+ data.error); 
       if (data.success != undefined && data.success != '') 
       { 
        console.log("inside success"); 
        window.location.href = "income_source.php"; 
        $scope.getTemplate("ADDRESSINFO"); 
        $scope.user = ''; 

       } 
       else 
       { 
        $scope.error = data.error; 
       }   

      }).error(function(data, status, headers) { 
       window.location.href = "error.html"; 
       console.log("Error data::::"+ data); 

       alert("Error occured while creating address info:"+status); 
         });   
     } 
     else{ 
     $scope.submitted = true; 
     alert("Fill the form."); 
     return; 
    } 

}; 
+1

при условии, что у вас есть LoginController добавить флаг аутентификации в Вашей области (например, 'isAuthenticated') и установить этот флаг, чтобы верно когда пользователь вошел в систему В ваших представлениях добавьте директиву 'ng-hide' к вашим ссылкам и используйте значение isAuthenticated flag – Sherlock

+0

@EuphoriaGrogi Я не получаю то, что вы говорите – user5751258

+0

@EuphoriaGrogi вы можете обновить мне один пример – user5751258

ответ

0

Вопрос немного неясный и коды контроллера вы вывесили, кажется, не имеет отношения.

Но если предположить, что все, что вы хотите сделать, это показать/скрыть что-то в зависимости от того, войдет ли пользователь в систему, тогда вы можете сделать это, как сказал EuphoriaGrogi, создать переменную, которая установлена ​​в true, если пользователь зарегистрирован in и false, если нет. Что-то вроде этого:

$http.post('login_url').then(function(response){ 
     if(login_successful){ 
      $rootScope.isAuthenticated = true; 
     } 
     else{ 
      //handle error 
     } 
    }); 

Когда вы выходите из системы, установите значение false. В HTML используют нг-если на все, что вы хотите скрыть:

<div class="col-sm-12 primary" ng-if="isAuthenticated"> 
     <div class="col-sm-2"><a href="#" class="ui-btn ui-shadow ui-corner-all personal">PERSONALINFO</a></div> 
     <div class="col-sm-2"><a href="login.php" class="ui-btn ui-shadow ui-corner-all">LOGOUT</a></div> 
    </div> 
+0

$ http.post ('login_url'). Затем (function (response) {Здесь вы указали как login_url, но откуда нам нужно предоставить функцию login_url – user5751258

+0

Итак, t реализовала функции входа/выхода в приложение еще? –

+0

Я реализовал логин, функцию регистрации в php, и он работает в php, теперь я работаю с angularjs – user5751258

Смежные вопросы