我正在构建一个带有用户身份验证的MEAN应用程序,而我目前正在学习Angular(我喜欢通过使用它来学习,而不是以实际的方式学习)。无论如何,在我剥离把手视图引擎并将视图文件从.hbs更改为.html之前,我能够显示当前经过身份验证的用户的用户名,如下所示:
句柄: {{user.username}}
= req.user.username,它会显示当前经过身份验证的用户的用户名。
我现在使用sendfile:
,而不是使用渲染来渲染我的页面app.get('/dashboard', Auth.ensureAuthenticated, function (req, res) {
res.sendfile('./app/views/admin.html', req);
});
我想知道如何在Angular中呈现当前经过身份验证的用户的用户名。
答案 0 :(得分:0)
您可以通过
发送用户信息使用车把模板设置全局变量。
app.get('/dashboard', Auth.ensureAuthenticated, function (req, res) {
res.render('admin',{user: user});
});
在车把模板中添加如下内容
<script type="text/javascript">
window.user = {{user}};
</script>
将此全局包装在角度服务中
angular.module('myApp').service('Global', ['$window', function($window){
function _getUser() {
return $window.user;
}
return {
user: _getUser()
};
}]);
现在,在您的控制器中,您可以通过注入全局服务来访问用户数据
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>
或者您可以通过cookie发送信息。在角度服务中读取_getUser函数内的cookie值后,删除cookie。
或者你可以发送一个ajax请求来获取角度服务中的数据。