从AngularJS中的多个复选框中获取价值

时间:2015-05-24 07:54:52

标签: javascript html angularjs angularjs-scope

以下是我的代码,其中我试图获取多个复选框的值被选中,但有些如何不起作用。让我知道我在这里做错了什么,BTW列表是动态的,不会只包含数组中的3个项目。

我的Plnkr - PLNKR CODE

HTML -

    <table>
    <tr ng-repeat="student in studentList">
   <td ng-bind="$index + 1"></td>
   <td ng-bind="student.email"></td>
   <td ng-bind="student.fname"></td>
   <td ng-bind="student.lname"></td>
   <td>
    <input type="checkbox" ng-model="studcheck" ng-value="$index" />
   </td>
</tr>
</table>
{{studcheck}}

控制器代码 -

var myApp = angular.module('myApp', []);

myApp.controller('mainCtrl', function($scope){
  $scope.studentList = [
    {email: 'test1@gmail.com', fname: 'Test1', lname: 'Last1' },
    {email: 'test2@gmail.com', fname: 'Test2', lname: 'Last2' },
    {email: 'test3@gmail.com', fname: 'Test3', lname: 'Last3' },
  ];

  $scope.studcheck = {};
});

1 个答案:

答案 0 :(得分:3)

您不能在同一型号上多次使用ng-model,但这里只需指定密钥即可:

<input type="checkbox" ng-model="studcheck[$index]" ng-value="$index" />

如果您想更新student模型以了解是否已选中,您可以尝试使用ng-change

<input type="checkbox" ng-model="studcheck[$index]" ng-value="$index" ng-change="student.checked = !student.checked" />