javascript - 检查 Angularjs 表达式中的空对象

标签 javascript angularjs

我想根据 $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可以有truefalse通过使用该服务检查登录状态。那你只能做ng-if="isAuthenticated"ng-if="!isAuthenticated"

关于javascript - 检查 Angularjs 表达式中的空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31956573/

相关文章:

javascript - 如何从 anchor 标记的 href 属性中隐藏#div

javascript - ng-file-upload 输出模型仅包含 $ngfBlobName 但文件上传正常

javascript - 如何测量nodejs中异步函数的执行时间?

javascript - angularjs ng-include 和 angularjs 自定义指令不想一起工作

angularjs - 如何使用 nginx 和本地 tomcat 设置 grunt live-reload 任务

javascript - Angular 在指令中保存来自 attr 的监视表达式

javascript - 从列表 : AngularJs 中删除当前节点

javascript - javascript 数组 foreach 排序

javascript - 如何确保我的数据在 Firebase 登录之前和之后都经过清理?

javascript - 使用 AdBlocker 为用户显示替代内容