当前代码:
<div ng-controller="HeaderCtrl" class="header">
<div class="logo">intquest</div>
<div ng-if="signed_in" class="header-actions">
<a href="/#/random">Random</a>
<a href="/#/add">Add question</a>
</div>
<div ng-if="!signed_in" class="header-actions">
<a href="/#/register">Register</a>
<a href="/#/login">Login</a>
</div>
</div>
我想以某种方式将我的 Express session 变量传递给 $scope.signed_in
变量。因为这是一个 HTML 而不是 Jade 模板,我不能使用 JSON.stringify
,我没有后端 API,所以我认为我不能制作一个 $http
或资源请求,我应该怎么做呢?最佳做法是什么?
最佳答案
假设您无法创建后端 API,我可以想到两件事:
查看 cookie 是否存在。 尝试注入(inject)
$cookes
服务到您的HeaderCtrl
并检查它以查看您的 Expression session 是否留下任何 cookie。如果你这样做并且你知道它的名字(看起来它是来自 this 的'connect.sid'
- 除非你覆盖默认值)那么只需设置$scope.signed_in
返回一个表达式,该表达式返回该名称是否存在 cookie。这假定注销时 cookie 不存在。我不知道这个假设是否正确。如果这不起作用,如果您绝对无法进行 API 调用,请尝试从 cookie 中读取一个值我认为您可能需要确保 cookie 没有一个 secret ,等等 - 然后我假设它可以从客户端/在 Angular 中读取。
如果这两种方法都不起作用,或者如果您不能/不想这样做(以及为什么),请告诉我,我会考虑是否可以考虑替代方案(基于您的原因/约束)。
关于javascript - 将后端快速 session 变量传递给 Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25838949/