AngularJS:映射复选框到数组

时间:2015-05-29 11:59:40

标签: angularjs

我目前有复选框,用户可以选择,然后发送到我的模型,

<div ng-repeat="option in roleOptions">
    <input type="checkbox" value="{{option.Id}}" ng-model="user.Roles[option.Id]">{{option.Name}}
</div>

问题是这会产生这样的结果,

{
  0: 'a',
  1: 'b',
  2: 'c'
}

虽然我想要这样的输出,

['a','b','c']

我意识到我之后可以转换它们,但是我真的想以某种方式更改我的html以便它直接映射到数组,因为我也会将这些数据以数组格式发送到html所以我不想一直保持转换。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

ng-model 仅对某个对象起作用。您正在尝试将值推送到数组上。您可能最好使用ng-click并创建自己的处理程序来从阵列推送/移位。

<div ng-repeat="option in roleOptions">
    <input type="checkbox" value="{{option.Id}}" ng-click="addToArray(user.Roles, option.Id)">{{option.Name}}
</div>