从数据库中检索角色然后根据 AngularJS/Knockout/Ember 中的角色显示项目的最佳做法是什么

What is the best practices to retrieve roles from database then displays item depending roles in AngularJS/Knockout/Ember

假设我在数据库中有一个table角色,管理员可以add/delete角色,为每个角色分配权限。从数据库中检索角色然后根据每个角色显示项目的最佳做法是什么。我看到了很多示例,但它们在 JS 中总是使用固定的角色 我们可以在服务器端轻松完成,但我想知道在 AngularJS/Knockout/Ember 中实现它的最佳方法 非常感谢

我过去在使用 Knockout 时所做的是一个三步法:

  1. 将一个对象写入页面(在呈现时),详细说明用户的权限。例如

    var privileges = { CanView: true, CanEdit: true, CanAssignRoles: false };

  2. 编写一个通用函数,它接受一个说明所需权限的参数,它将检索上述对象并确定用户的权限是否处于所需级别。

  3. 在您的视图模型中,添加函数,例如

    self.CanAssignRoles = function() { return determineAccess('CanAssignRoles'); };

    然后在 HTML 绑定中引用 CanAssignRoles

    <输入类型="checkbox" 数据绑定="visible: CanAssignRoles" />

至于如何将 privileges 对象放到页面上,这取决于您的服务器端技术(.NET、PHP、 .).