2016-09-22 55 views
0

我需要一個幫助。我需要使用Angular.js從表格行中獲取所有選中的數據。我在下面解釋我的代碼。如何使用Angular.js中的複選框獲取表格行數據

<tr ng-repeat="gl in galleryDatas"> 
<td><input type="checkbox" name=""> {{$index+1}}</td> 
<td><img ng-src="upload/{{gl.image}}" border="0" name="image" style="width:100px; height:100px;" /></td> 
<td>{{gl.description}}</td> 
</tr> 

在這裏,我需要的,而用戶將點擊複選框中的各行數據將檢索到array.Please幫助我。該複選框

<td><input type="checkbox" ng-change="clickedRow(gl.checked)" name="" ng-model="gl.checked"></td> 

在控制器

+0

值得看的這個,小提琴好像你想要達到的目標:HTTP: (http://stackoverflow.com/a/14835160/4045532](http://stackoverflow.com/a/14835160/4045532) – Corporalis

+0

[如何綁定到AngularJS的複選框值列表](http:// stackoverflow .COM /問題/ 14514461 /如何做綁定到列表的-複選框值與 - angularjs) –

回答

0

使用NG-變化,

$scope.clickedRow = function(checked) { 
if (checked) { 
    //add to the list 
    } else { 
// remove from list 
    } 
} 
0

你可以通過這個過程

在你的控制器

實現:

$scope.galleryDatas = [ 
    { 
     name: 'something', 
     description: "name 1" 
    }, 
    { 
     name: 'another', 
     description: "name 2" 
    } 
    ]; 

    $scope.checkedValue = []; 

    $scope.saveInArray = function(index) { 
    if($scope.galleryDatas[index].checked) { 
     $scope.checkedValue.push($scope.galleryDatas[index]); 
    } else { 
     var newIndex = $scope.checkedValue.map(function(e) { return e.name; }).indexOf($scope.galleryDatas[index].name); 
     // for compare instead of "name" you should use that field is unique. ie: e.uniqueField 
     // and $scope.galleryDatas[index].uniqueField 
     if(newIndex !== -1) 
      $scope.checkedValue.splice(newIndex,1); 
    } 

    }; 

注:其中$scope.checkedValue陣列和未選中時檢查行數據存儲,然後從$scope.checkedValue陣列

和HTML刪除:

<td><input type="checkbox" ng-model="gl.checked" ng-click="saveInArray($index)"> {{$index+1}}</td> 
相關問題