我想根据 $rootScope 变量显示登录和注销按钮。但它总是在下面提到的 li 标签中显示注销。 我在一些事件中做了一些事情:-
登录后:-
$rootScope.userData = response.userdata;//response.userdata is Object
注销后:-
delete $rootScope.userData;
$rootScope.userData = null;
Controller :-
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>
最佳答案
登录ng-if="!$root.userData.length"
注销ng-if="$root.userData.length"
我建议您创建一个MainController
并将登录数据加载到模型中,例如 user
并添加MainController
给您<body>
标签,这样您就可以在任何地方访问登录用户,而不是将其添加到 rootScope。
您可以创建 service
可以判断用户是否登录并返回数据。这样你还可以拥有另一个模型,名为 isAuthenticated
可以有true
或false
通过使用该服务检查登录状态。那你只能做ng-if="isAuthenticated"
和ng-if="!isAuthenticated"
关于javascript - 检查 Angularjs 表达式中的空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31956573/