我最近开始构建一些功能,以根据用户在系统中的权限来限制用户在UI中看到的内容。
当用户第一次访问该站点时,有一个列表项包含默认隐藏的管理菜单。当用户成功登录时,如果用户具有正确的用户权限,则现在应显示列表项。这是li的代码:
<li ng-show="isAdministrator">
... items here
</li>
在我的控制器上,我有以下代码:
$scope.isAdministrator = authService.isUserAdmin;
此时,如果我在console.log中将authService.isUserAdmin值设置为true,但列表项仍未显示。如果我手动刷新页面,则会显示列表项。当我退出时会发生相反的情况。注销后,authService.isUserAdmin设置为false,但列表项仍会显示,直到我刷新页面。
我只能假设我遗漏了一些非常基本但我无法找到问题的东西。简而言之,列表的代码位于一个div中,该控制器将ng-controller设置为正确的控制器,并且该列表尚未重构为指令。
任何帮助将不胜感激
答案 0 :(得分:2)
也许这与authService.isUserAdmin
是原始类型有关。试试这个:
控制器:
$scope.authServ = authService;
视图:
<li ng-show="authServ.isUserAdmin">...</li>
答案 1 :(得分:2)
我确信在$scope.isAdministrator = authService.isUserAdmin
执行
authService.isUserAdmin
使用此代码:
in html:
<li ng-show="ser.isUserAdmin">
... items here
</li>
控制器中的:
$scope.ser= authService;