Angular JS权限检查

问题描述 投票:0回答:2

有一长串项目,其中一些用户拥有一些权限的项目没有。如何检查用户是否拥有特定项目的权限?我可以在控制器中加载权限,然后当我通过ng-repat中的列表进行迭代时,调用一个方法来检查该项是否有权限 - 该项是在权限数组中 - 之前加载的。我在尝试这种方法时看到的是,由于双向数据绑定需要很长时间 - 即使用户在屏幕上执行其他操作 - 单击按钮 - 与控制器交互,也会执行检查。实现这一目标的最佳方法是什么?

angularjs permissions
2个回答
0
投票

我仅在应用程序启动或路由更改时更新我的​​用户( - >权限)。有了这个,我的中心方法没有出现任何性能问题

$rootScope.authService.hasPermission(roles)

只检查结果,所以js没有在模板中计算。


0
投票

只需使用memoization技术。许可检查不应经常更改(我想在登录表单和注销后)。所以,你可以这样做:

var memoize = require('lodash.memoize')
var hasPermission = memoize(service.hasPermission)

如果要清除缓存只需调用

hasPermission.cache.clear()

我在使用CASL的项目中使用了这种方法,它的工作速度非常快

© www.soinside.com 2019 - 2024. All rights reserved.