将后端Express会话variables传递给Angular

当前代码:

<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_invariables。 因为这是一个HTML而不是Jade模板,我不能使用JSON.stringify ,我没有后端API,所以我不认为我可以做一个$http或资源请求,我应该怎么做这个? 什么是最佳实践?

我可以想到两件事,假设你不能创build一个后端API:

  1. 看看是否存在cookie。 尝试注入$cookes服务到您的HeaderCtrl并检查它,看看您的expression会话是否留下任何cookie。 如果你确实知道了它的名字(看起来像是'connect.sid' ,除非你重写了默认值),那么只要将$scope.signed_in设置$scope.signed_in一个expression式,该expression式返回cookie是否以该名称存在。 这假定该cookie在注销时不存在。 我不知道这个假设是否正确。

  2. 如果这不起作用, 尝试从cookie中读取值,如果你绝对不能进行API调用我认为你可能需要确保cookie没有秘密等 – 然后我会认为这将是可以从客户端/ Angular中读取。

让我知道,如果这两个不工作,或者如果你不能/不想做他们(和为什么),我会看看如果我能想到一个替代(根据你的原因/约束)。