如何在多对多关系中使用复选框?

dex07

我有两个具有多对多关系的模型(角色,权限)。有一个权限列表,角色可以拥有一些权限。我想为角色创建编辑页面,并在其中添加权限作为复选框列表。

编辑模板:

<form>
    {{input type="text" placeholder="role name" value=name}}
    <br />
    {{#each permissions_list}}
        <label>
            {{input type="checkbox" name="permissions[]"}}{{name}}
        </label><br />
    {{/each}}
    <button {{action 'save'}}>Edit</button>
</form>

楷模:

    var Role = DS.Model.extend({
        agents: DS.hasMany('agent', {async: false}),
        name: DS.attr('string'),
        permissions: DS.hasMany('permission', {async: true})
    });

    var Permission = DS.Model.extend({
        type: DS.attr('string'),
        name: DS.attr('string'),
        roles: DS.hasMany('permission', {async: false})
    });

编辑角色控制器

    export default Ember.ObjectController.extend({
        permissions_list: [],
        actions: {
            save: function() {
                return this.get('model').save();
            }
        },
        load_permissions: function() {
            this.set('permissions_list', this.store.find('permission'));
        }.on('init')
    });

问题:

  1. 如果此权限已在model.permissions中,我无法找出如何将复选框标记为已选中
  2. 我无法保存角色保存权限。控制器看不到“权限”数据(编辑角色控制器中的this.get('permissions'))

权限-权限列表,该角色包含

Permissions_list-数据库中所有权限的列表

卡尔曼

最简单的方法(IMHO)是为复选框创建组件:

App.PermissionCheckboxComponent = Ember.Component.extend({
  tagName: '',
  checked: function(){
    var permission = this.get('permission.name');
    var rolePermissions = this.get('role.permissions').mapBy('name');

    return rolePermissions.contains(permission);    
  }.property(),

  save: function(){
    var permissionChecked = this.get('checked');
    var role = this.get('role');
    var permission = this.get('permission');
    var permissions = role.get('permissions');

    if(permissionChecked){
      role.get('permissions').addObject(permission);
      permission.save();
      role.save();
    }
    else {
      role.get('permissions').removeObject(permission);
      role.save();
    } 
  }.observes('checked')    
});

您的组件模板如下所示:

<script type="text/x-handlebars" id="components/permission-checkbox">
  {{ input type='checkbox' checked=checked }} {{permission.name}}
</script>

然后,您可以在编辑模板中使用此组件,如下所示:

<h2>Edit Permissions</h2>
<ul>
{{#each role in model.roles}}
  <li>{{role.name}}</li>
  <ul>
  {{#each permission in model.permissions}}
    <li>{{ permission-checkbox permission=permission role=role }}</li>
  {{/each}}
  </ul>
{{/each}}
</ul>

这里的工作解决方案

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SQL中基于多对多关系的复选框搜索和筛选数据?

来自分类Dev

如何在ASP.Net MVC3 Razor中使用多个复选框

来自分类Dev

我如何在jQuery中使用Ajax中的新复选框?

来自分类Dev

如何在Laravel中使用Ajax jQuery发布多个复选框值

来自分类Dev

如何在angularjs中使用嵌套ng-repeat复选框

来自分类Dev

如何在XPages中使用验证器验证复选框

来自分类Dev

如何在jmeter中使用多个复选框?

来自分类Dev

如何在PHP发出的表格行中使用JavaScript检查所有复选框

来自分类Dev

如何在Spotfire中使用IronPython设置复选框过滤器?

来自分类Dev

如何在Unity中使用代码切换复选框?

来自分类Dev

如何在Swing Java的复选框中使用全选选项?

来自分类Dev

如何在离子框架中使ios的复选框方形?

来自分类Dev

在Django中带有复选框的多对多关系列表显示

来自分类Dev

复选框,使用多对多关系php

来自分类Dev

如何在React钩子中使用CheckAll复选框创建复选框?

来自分类Dev

凤凰框架与复选框的多对多关系在验证失败时会引发argumentsError

来自分类Dev

如何在aspxgridview中使复选框可编辑?

来自分类Dev

如何在Android中使用单选复选框

来自分类Dev

如何在PHP中使用html复选框插入INTO

来自分类Dev

在grails中的多对多关系中使用复选框

来自分类Dev

如何在离子框架中使ios的复选框方形?

来自分类Dev

如何在表格php中使用复选框

来自分类Dev

使用按钮或复选框在 Laravel 5.3 中保存多对多关系的问题

来自分类Dev

如何在多对多关系中使用 ConcatRelated()

来自分类Dev

如何在css中使用复选标记作为复选框

来自分类Dev

保存和读取复选框值 - 多对多关系 C#

来自分类Dev

我们如何在 Spring MVC 中使用带有父子关系的复选框?

来自分类Dev

如何在复选框中使用 css

来自分类Dev

如何在多对多关系 Laravel 中使用条件?

Related 相关文章

  1. 1

    如何在SQL中基于多对多关系的复选框搜索和筛选数据?

  2. 2

    如何在ASP.Net MVC3 Razor中使用多个复选框

  3. 3

    我如何在jQuery中使用Ajax中的新复选框?

  4. 4

    如何在Laravel中使用Ajax jQuery发布多个复选框值

  5. 5

    如何在angularjs中使用嵌套ng-repeat复选框

  6. 6

    如何在XPages中使用验证器验证复选框

  7. 7

    如何在jmeter中使用多个复选框?

  8. 8

    如何在PHP发出的表格行中使用JavaScript检查所有复选框

  9. 9

    如何在Spotfire中使用IronPython设置复选框过滤器?

  10. 10

    如何在Unity中使用代码切换复选框?

  11. 11

    如何在Swing Java的复选框中使用全选选项?

  12. 12

    如何在离子框架中使ios的复选框方形?

  13. 13

    在Django中带有复选框的多对多关系列表显示

  14. 14

    复选框,使用多对多关系php

  15. 15

    如何在React钩子中使用CheckAll复选框创建复选框?

  16. 16

    凤凰框架与复选框的多对多关系在验证失败时会引发argumentsError

  17. 17

    如何在aspxgridview中使复选框可编辑?

  18. 18

    如何在Android中使用单选复选框

  19. 19

    如何在PHP中使用html复选框插入INTO

  20. 20

    在grails中的多对多关系中使用复选框

  21. 21

    如何在离子框架中使ios的复选框方形?

  22. 22

    如何在表格php中使用复选框

  23. 23

    使用按钮或复选框在 Laravel 5.3 中保存多对多关系的问题

  24. 24

    如何在多对多关系中使用 ConcatRelated()

  25. 25

    如何在css中使用复选标记作为复选框

  26. 26

    保存和读取复选框值 - 多对多关系 C#

  27. 27

    我们如何在 Spring MVC 中使用带有父子关系的复选框?

  28. 28

    如何在复选框中使用 css

  29. 29

    如何在多对多关系 Laravel 中使用条件?

热门标签

归档