我遇到了问题。我希望在用户登录或注销时显示隐藏菜单项。
所以我写了一个家庭控制器:scope.UserLoggedIn = $window.sessionStorage.getItem('loginToken') != null;
在我的Index.html中:
<div class="collapse navbar-collapse" id="top-navbar">
<ul class="nav navbar-nav">
<li class="pull-left"><a href="/Home">HOME</a> </li>
<li class="pull-right" data-ng-show="UserLoggedIn"><a href="/#/Login" data-ng-click="Logout()">LOGOUT</a></li>
<li class="pull-right" data-ng-hide="UserLoggedIn"><a href="/#/Login">LOGIN</a></li>
<li class="pull-right" data-ng-hide="UserLoggedIn"><a href="/#/register">REGISTER</a></li>
</ul>
</div>
属性设置正确但只有刷新页面时菜单才会消失。当我注销时,我必须刷新页面以呈现新菜单。
我认为,我做错了:/
答案 0 :(得分:1)
您没有详细说明您的homeController
声明以及何时设置变量。
但解决此问题的一种方法是使用函数代替。像
这样的东西scope.UserLoggedIn = function () {
return $window.sessionStorage.getItem('loginToken') != null;
}
每次摘要周期发生时都会调用此函数,因此您将始终获得正确的值。