2014-05-24 1 views
0

사용자 인증 기능이있는 평균 앱을 만들고 있는데 현재 Angular를 배우는 중입니다. (실용적인 방법으로 배우고있는 것을 사용하여 배우고 싶습니다.) .MEAN 앱에서 각형을위한 핸들 바 바꾸기

핸들 바 :{{user.username}} = req.user.username을 내가 제거하기 전에 어쨌든, 핸들은 내가 지금처럼 현재 인증 된 사용자의 사용자 이름을 표시 할 수 있었다 .html 파일을 .hbs에서보기 파일을 엔진을 확인하고 변경 현재 인증 된 사용자의 사용자 이름을 표시합니다.

오히려 내 페이지를 렌더링 렌더링을 사용하는 것보다, 지금 sendfile을 사용하고 있습니다 :

app.get('/dashboard', Auth.ensureAuthenticated, function (req, res) { 
    res.sendfile('./app/views/admin.html', req); 
}); 

내가 각도에서 현재 인증 된 사용자의 사용자 이름을 렌더링 대해 이동하는 방법을 알고 싶습니다.

답변

0

당신은 당신의 핸들 템플릿을 사용하여 전역 변수를 설정

  1. 하여 사용자 정보를 보낼 수 있습니다.

    app.get('/dashboard', Auth.ensureAuthenticated, function (req, res) { 
        res.render('admin',{user: user}); 
    }); 
    

    그리고 핸들 템플릿에 컨트롤러에

     angular.module('myApp').service('Global', ['$window', function($window){ 
         function _getUser() { 
          return $window.user; 
         } 
    
         return { 
          user: _getUser() 
         }; 
        }]); 
    

    이제 각 서비스에서이 글로벌 아래

    <script type="text/javascript"> 
        window.user = {{user}}; 
    </script> 
    

    랩 같은 것을 추가, 당신은 글로벌 서비스를 주입하여 사용자 데이터에 액세스 할 수 있습니다

    angular.module('myApp').controller('AdminController', ['$scope', 'Global', function($scope, Global) { 
         $scope.user = Global.user; 
    
        }]) 
    

    사용자는 각 부분 뷰를 사용할 수 있습니다.

    <div data-ng-controller="AdminController"> 
        Welcome <span ng-bind="user"></span> 
    </div> 
    
  2. 또는 쿠키를 통해 정보를 보낼 수 있습니다. 각도 서비스에서 _getUser 함수 내의 쿠키 값을 읽은 후 쿠키를 삭제하십시오.

  3. 또는 각도 서비스 내의 데이터를 가져 오기위한 ajax 요청을 보낼 수 있습니다.