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权限检查的主要内容,如果未能解决你的问题,请参考以下文章

关于js----------------分享前端开发常用代码片段

如何修复“代码应明确检查权限是不是可用”错误

js代码片段

带有 Firebase 的 Angular - 应用检查后权限缺失或不足

在Angular中->如何使用基于角色的访问权限检查用户是不是具有权限,并将角色保存在数据库中

在自定义验证中使用 Angular JS + Laravel 检查当前密码