2014-03-04 78 views
0

我有一個表單,其中有多個複選框,我使用ng-repeat從JSON文件中顯示覆選框數據。現在,當我提交表單時,我想從複選框中獲取選中的數據。表單提交後如何訪問檢查的數據? 我做了一些研究,現在我可以使用ng-model="s.checked"在頁面上顯示檢查的數據,但是我怎樣才能訪問控制器端的檢查數據。從表單中獲取複選框中的選定數據

請參見本Plunk的細節

+0

可能重複的[所有複選框得到檢查時檢查(應該只是一個檢查) - 輸入生成的角度js](http://stackoverflow.com/questions/17487951/all-checkboxes-get-checked -when-one-is-checked-should-be-one-one-checked) –

回答

0

$scope.List的結構,當你提交併沒有改變,它仍然是對象的數組。你可以這樣做

$scope.submit = function() { 
    var checkedItems = $scope.List.filter(function(item){ 
     return item.checked; 
    }); 
    console.log(checkedItems); 
}; 

已經改變的了List項目的值。

(而且,它通常是使用ngSubmit一個好主意)

+0

也許唯一需要補充的是'Array.prototype.filter' [不支持](http:// kangax。 IE8(和IE7)上的github.io/es5-compat-table/#Array.prototype.filter)。 – PrimosK

0

你有對象的數組:

$scope.list = [ 
{"ID":5000,"Name":"ABC",checked:true}, 
{"ID":5001,"Name":"DEF",checked:false}, 
{"ID":5002,"Name":"XYZ",checked:false}]; 

這樣你就可以訪問檢查屬性的值是這樣的:

$scope.submit = function() { 
    var val1 = $scope.list[0].checked; 
    var val2 = $scope.list[1].checked; 
    var val3 = $scope.list[2].checked; 
} 

或使用forEach聲明:

$scope.submit = function() { 
    angular.forEach($scope.list, function (listValue) { 
     var val = listValue.checked; 
    }); 
} 
相關問題