【发布时间】:2014-10-27 16:14:27
【问题描述】:
我最近开始构建一些功能,以根据用户在系统中的权限限制用户在 UI 中看到的内容。
当用户第一次访问该站点时,会出现一个包含默认隐藏的管理菜单的列表项。当用户成功登录时,如果用户具有正确的用户权限,现在应该会显示列表项。这是li的代码:
<li ng-show="isAdministrator">
... items here
</li>
在我的控制器上,我有以下代码:
$scope.isAdministrator = authService.isUserAdmin;
此时,如果我 console.log 将 authService.isUserAdmin 值设置为 true,但列表项仍然不显示。如果我手动刷新页面,则会显示列表项。当我注销时会发生相反的情况。注销后,authService.isUserAdmin 设置为 false,但列表项仍会显示,直到我刷新页面。
我只能假设我遗漏了一些非常基本的东西,但我找不到问题所在。顺便提一下,列表的代码位于 div 中,该 div 将 ng-controller 设置为正确的控制器,并且列表尚未重构为指令。
任何帮助将不胜感激
【问题讨论】:
-
如何在
authService中设置isUserAdmin? -
$scope.isAdministrator = authService.isUserAdmin; authService 被注入到控制器中
-
@StevenMcD 围绕它的代码是什么?最好的猜测是 $digest 没有接收到变化。
标签: angularjs