Angular JS权限检查

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Angular JS权限检查相关的知识,希望对你有一定的参考价值。

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

答案

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

$rootScope.authService.hasPermission(roles)

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

另一答案

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

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

如果要清除缓存只需调用

hasPermission.cache.clear()

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

以上是关于Angular JS权限检查的主要内容,如果未能解决你的问题,请参考以下文章