Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS$rootScope问题_Javascript_Html_Angularjs - Fatal编程技术网

Javascript AngularJS$rootScope问题

Javascript 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">

Am使用angular
$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>