AngularJS - 访问节点/快速会话信息

时间:2013-06-04 14:03:48

标签: angularjs node.js passport.js

我正在使用Express和Passport进行身份验证和授权的节点应用程序,所有这些都正常工作。但是,我对如何在Angular控制器中获取当前用户(通过Passport设置为req.user)感到难过。

我希望能够做正常的事情,比如在标题/导航栏中显示用户名(以及其他内容),我目前正在使用Jade视图引擎进行此操作,但我不喜欢使用Jade进行混音查看某些“数据绑定”的引擎和其他人的Angular。

现在,我知道我可以很容易地调用节点中的api端点,该节点将req.user作为JSON返回,但这似乎是一个丑陋的解决方案,因为每次有页面加载时我都会点击该端点(这不是SPA)。

所以我的问题基本上是这样的:我可以在我的Angular视图中获取当前登录的用户,这样我就可以完成所有数据绑定客户端而不是某些服务器端(使用Jade视图引擎)和一些客户端角?

注意:没有代码片段,因为一切都按预期工作,我只是希望有一个比我现有的更好的替代方案。

1 个答案:

答案 0 :(得分:1)

考虑在定义ng-app的DOM上使用“ng-init”,即在Express中打印的服务器端数据(假设为Dust模板)。以下是一个简单的例子:

    <body ng-app="testApp" ng-controller="homeCtrl" ng-init="logged_in_user = {req.user}">
      <div...
      ...
    </body>

然后您可以访问homeCtrl中的logged_in_user,作为“scope.logged_in_user” 希望这会有所帮助..

-Bhaskara