如何在Angularjs中处理ng-model中的数组

时间:2016-05-24 06:57:24

标签: angularjs

数组:

getRoles =[{"id":3,"role":"role1"},{"id":4,"role":"role2"},{"id":6,"role":"role3"}]

HTML:

<form ng-submit="userRegister()" name="registrationForm" id="registrationForm">
  <div class="checkbox" ng-repeat="role in getRoles">
    <label ng-init="i=i+1">
      <input type="checkbox" class="flat" ng-model="registrationData.role_ids[i]" ng-value="{{role.id}}">{{role.role}}
    </label>{{registrationData.roles_id}}</div>
  <button type="submit">submit</button>
</form>

在上面的html变量i不起作用。在每个循环中,它将打印i,而不是i的值 需要:我想提交表单,并在控制器中获取所选复选框的名称和值。请帮助我。我很感激所有的回应。

1 个答案:

答案 0 :(得分:0)

问题是,ngRepeat会在每次迭代时创建一个新范围,并初始化它自己的i,因此i=i+1不可能被评估为有效整数。

您可以使用$index属性来访问迭代索引,如:

<form ng-submit="userRegister()" name="registrationForm" id="registrationForm">
  <div class="checkbox" ng-repeat="role in getRoles">
    <label>
      <input type="checkbox" class="flat" ng-model="registrationData.role_ids[$index]" ng-value="{{role.id}}">{{role.role}}
    </label>{{registrationData.roles_id}}</div>
  <button type="submit">submit</button>
</form>