AngularJs从数组生成类别

时间:2016-07-25 17:11:49

标签: javascript angularjs

<table class="table-striped table-bordered table-condensed">
    <tbody>
        <tr ng-if="$index%3==0" ng-repeat="permission in vm.parent.getAllPermissions()">
            <td ng-repeat="i in [0,1,2]" class="col-xs-2">
                <span>
                <input type="checkbox" checklist-model="vm.data.permissions" checklist-value="vm.parent.getPermission($parent.$index+i)"> 
                {{vm.parent.getPermissionTitle($parent.$index+i) || " "}}
                </span>
            </td>
        </tr>
    </tbody>
</table>

这是我现在的角度。我的json是这样的。有N个用户,类别和权限

{
  "Admin": {
    "category": "admin",
    "permission": "admin"
  },
  "user": {
    "category": "user",
    "permission": "user"
  }
}

vm.getAllPermissions()返回所有数据。我想分割用户和权限,所以基本上我希望将类别拆分为ui-tab,并在每个选项卡下将权限显示为表格。

我尝试过这样的事情

var permissionArray =[];
Object.keys(vmgetAllPermissions).map(function(category, key) {

for(var key in vmgetAllPermissions) {
    if(vmgetAllPermissions.hasOwnProperty(key)) {
        permissionArray.push(category,key);

    }
}

});

它不起作用,但它让你知道我正在尝试做什么。视图看起来像这样

enter image description here

类别管理员,顶部的选项卡,复选框所在的权限列表。我很确定我所要做的就是提供类别作为vm.parent.getAllPermissions的参数,但我不是很擅长角度也不是JS,我更愿意问你。

1 个答案:

答案 0 :(得分:1)

我认为你需要做的就是你需要一次推送一个值 - 推送一个对象。所以你的代码看起来像这样:(只需添加大括号)

permissionArray.push({category,key});

以下是一个示例:https://jsfiddle.net/yh0ugp6q/1/