我正在写一张有登录表单的SPA。该应用程序左侧有一个侧边栏,除非用户通过身份验证,否则我不希望显示该侧边栏。
我有一个处理身份验证的服务: login / logff方法使用$ cookieStore在会话中存储标志以存储用户的身份验证状态。 isAuthenticated从$ cookieStore检索并返回true / false
所以我的登录表单确实登录但是为了查看侧边栏,我必须刷新页面。
所有这些都包含在我用于布局的shell.html容器中。在那种形式中有一行像这样的html:
<div data-ng-include="'/app/layout/sidebar.html'" ng-if="vm.authenticated == true"></div>
在shell.js中我有如下代码来检查authService并设置该值。
vm.authenticated = checkAuth();
function checkAuth() {
return authService.isAuthenticated();
}
尽管如此,因为当我进行页面刷新时,侧边栏确实会消失。
我失去的是如何在没有页面刷新的情况下让侧边栏显示/消失。
我只是在错误的树上吠叫?有没有比我正在做的更好的方法来构建应用程序?
我已经开始考虑使用$ watch了,但我不确定这是否也是正确的方法。
非常感谢任何帮助。
这就是我的诀窍。感谢Clais的指导!
vm.authenticated = function () {
return authService.isAuthenticated();
}