Javascript AngularJS$rootScope问题
Am使用angularJavascript AngularJS$rootScope问题,javascript,html,angularjs,Javascript,Html,Angularjs,Am使用angular$rootScope设置两个变量,以使用它们显示用户是否登录 我有两个功能 login() { $rootScope.isLoggedIn = true; $rootScope.username = response.principal.username; } 及 在我的HTML中,我有如下内容 <div class="inline-divs" style="float: right" ng-show="isLoggedIn == true">
$rootScope
设置两个变量,以使用它们显示用户是否登录
我有两个功能
login() {
$rootScope.isLoggedIn = true;
$rootScope.username = response.principal.username;
}
及
在我的HTML中,我有如下内容
<div class="inline-divs" style="float: right" ng-show="isLoggedIn == true">
<div class="inline-divs"><a>{{username}}</a></div>
<div class="inline-divs"><a href="#" ng-click="logout()">Logout</a></div>
</div>
我现在的问题是登录时出现div
。但是,当我单击注销按钮(它调用logout()
函数)时,假设再次隐藏div
,它就不起作用了。div
始终可见。我在注销中成功执行了其他语句,但我不明白为什么我将$rootScope.isLoggedIn
设置为false,并且div
没有隐藏
我做错了什么更改这些行
<div class="inline-divs" style="float: right" ng-show="isLoggedIn == true">
到
无需检查isLoggedIn
的值。您可以直接指定表达式,因为它是true/false
问候。HTML
<div class="inline-divs" style="float: right" ng-show="isLoggedIn">
然后在你的html页面中通过打印该值检查一次,这样你就可以知道$rootScope.isLoggedIn发生了什么
{{isLoggedIn}
我对html中的rootScooe有一个有趣的行为,请尝试在变量前面添加$root.
,如下所示:
ng show=“$root.isLoggedIn”
。您也不需要显式地检查true。您可以创建一个小提琴来显示您的问题吗?您是否尝试过在页面的某个地方用{{isLoggedIn}
打印出isLoggedIn
变量,这样您就可以看到它是否真的在变化了?在这里效果很好:好吧,那么我希望@Eddy能提供一些小提琴,如果它失败了。
<div class="inline-divs" style="float: right" ng-show="isLoggedIn">
<div class="inline-divs" style="float: right" ng-show="isLoggedIn">
$rootScope.isLoggedIn = false;
<pre>{{isLoggedIn}}</pre>