Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从数据库中检索角色然后在AngularJS/Knockout/Ember中显示依赖于项目的角色的最佳实践是什么_Angularjs_Ember.js_Knockout.js_Knockout 2.0 - Fatal编程技术网

从数据库中检索角色然后在AngularJS/Knockout/Ember中显示依赖于项目的角色的最佳实践是什么

从数据库中检索角色然后在AngularJS/Knockout/Ember中显示依赖于项目的角色的最佳实践是什么,angularjs,ember.js,knockout.js,knockout-2.0,Angularjs,Ember.js,Knockout.js,Knockout 2.0,假设我在数据库中有一个表角色,管理员可以添加/删除角色,为每个角色分配权限。从数据库中检索角色,然后根据每个角色显示项目的最佳做法是什么。我看到了很多示例,但它们在JS中总是使用固定角色 我们可以在服务器端轻松实现,但我想知道在AngularJS/Knockout/Ember中实现它的最佳方法 非常感谢您我过去在使用淘汰赛时所做的工作分为三步: 在页面中写入一个对象(呈现时),详细说明用户的权限。比如说 var privileges={CanView:true,CanEdit:true,CanA

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

我过去在使用淘汰赛时所做的工作分为三步:

  • 在页面中写入一个对象(呈现时),详细说明用户的权限。比如说

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

  • 编写一个通用函数,该函数接受一个表示所需权限的参数,该参数将检索上述对象并确定用户的权限是否处于所需级别

  • 在视图模型中,添加以下函数:

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

    然后在HTML绑定中引用
    CanAssignRoles


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

    我在html控件上使用了ko中的
    绑定处理程序
    ,这些控件将根据访问级别隐藏/显示、禁用/启用。我建议参考BindingHandler的概念,这在ko文档中有点棘手。谢谢,请你推荐一个具体的链接。据我所知,它仍然是一种在HTML中使用固定角色的方式。ThanksIt看起来很棒,但我认为如果我们在业务规则复杂的情况下为每个对象附加权限会更好。例如,我有新联系人,我想与同事共享,但我不希望他们可以删除/更新该联系人。