检查Angularjs Expression

时间:2015-08-12 05:18:14

标签: javascript angularjs

我想根据$ rootScope变量显示Login和Logout按钮。但它在li标签中始终显示注销,如下所述。  我在某些事件上做了一些事情: -

登录后: -

$rootScope.userData = response.userdata;//response.userdata is Object

退出后: -

delete $rootScope.userData;
$rootScope.userData = null;

控制器: -

console.log($rootScope.userData);//Object {}

HTML: -

<li ng-if="$root.userData == null"><a href="#/login"><i class="fa fa-lock"></i> Login</a></li>
<li ng-if="$root.userData != null"><a href="#/logout"><i class="fa fa-lock"></i> Logout</a></li>

2 个答案:

答案 0 :(得分:1)

登录ng-if="!$root.userData.length"

退出ng-if="$root.userData.length"

我建议您创建一个MainController并将登录数据加载到模型中,比如user并将MainController添加到您的<body>标记中,这样您就可以拥有访问登录用户无处不在,而不是将其添加到rootScope。

您可以创建一个service来判断用户是否已登录并返回数据。通过这种方式,您还可以通过使用该服务检查登录状态,使另一个名为isAuthenticated的模型具有truefalse。然后,您只能ng-if="isAuthenticated"ng-if="!isAuthenticated"

答案 1 :(得分:0)

使用ng-show代替ng-if ..