2015-05-24 64 views
0

以下是我嘗試獲取多個複選框的值的代碼,但其中有些如何不起作用。讓我知道我在這裏做錯了什麼,順便說一下,這個列表是動態的,並且不會僅包含數組中的3個項目。從AngularJS中的多個複選框中獲取價值

我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: '[email protected]', fname: 'Test1', lname: 'Last1' }, 
    {email: '[email protected]', fname: 'Test2', lname: 'Last2' }, 
    {email: '[email protected]', fname: 'Test3', lname: 'Last3' }, 
    ]; 

    $scope.studcheck = {}; 
}); 

回答

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" /> 
+0

你都還帶有一個參數綁定到所有的複選框,但我相信他正在努力爲每個複選框設置不同的值,其中ng-value不適用於複選框... –

+0

'ng-value'在此處正常工作。檢查生成的HTML,然後輸入值確實等於'$ index'。 –

+0

你能爲此提供蹲位嗎? –