当前代码:
<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会话var传递给$scope.signed_in
变量。因为这是一个HTML而不是Jade模板,我无法使用JSON.stringify
,我没有后端API,因此我认为我不能提出$http
或资源请求,我应该这样做吗?什么是最佳实践?
答案 0 :(得分:1)
我可以想到两件事,假设您无法创建后端API:
查看是否存在Cookie。尝试将$cookes
服务注入HeaderCtrl
并检查它以查看您的Expression会话是否留下任何Cookie。如果你这样做并且你知道它的名字(看起来像是来自this的'connect.sid'
- 除非你覆盖了默认值),那么只需将$scope.signed_in
设置为一个返回cookie是否的表达式与该名称一起出现。这假设在注销时cookie不存在。我不知道这是否属实。
如果这不起作用,如果绝对无法进行API调用,请尝试从Cookie中读取值我认为您可能需要确保Cookie没有一个秘密等等 - 然后我会假设它可以从客户端/ Angular内部读取。
让我知道如果这两个都不起作用,或者你不能/不想这样做(以及为什么),我会看看我是否能想到另一种选择(基于你的原因/约束)。