我的HTML代码中有一个表,其中的行是由AngularJS ng-repeat生成的。每行在第一列中包含一个复选框,在相应列中包含其他数据。当点击另一个div中的按钮时,我试图将所有的复选框都标记为选中。
<tbody>
<tr ng-repeat="row in myObject track by $index" ng-class-even="'alternate-row'">
<td name="checkbox">
<input type="checkbox" ng-model="row.checked" ng-style="row.checkboxStyle" ng-click="setSelectedRow(row)" />
</td>
<td>{{ row.data1 }}</td>
<td>{{ row.data2 }}</td>
</tr>
</tbody>
该按钮如下所示:
<div class="btn-group">
<button type="button" id="selectAll" class="btn btn-default" title="Select All" ng-click="selectAllGrid()">Select All</button>
</div>
单击将该特定行添加到数组的复选框时,将调用一个方法。如果我在单击按钮时将复选框标记为选中,将如何调用该方法。
发布于 2017-05-30 14:20:40
使用指令ng-checked
<tbody>
<tr ng-repeat="row in myObject track by $index" ng-class-even="'alternate-row'">
<td name="checkbox">
<input type="checkbox" ng-checked="checkAll" ng-model="row.checked" ng-style="row.checkboxStyle" ng-click="setSelectedRow(row)" />
</td>
<td>{{ row.data1 }}</td>
<td>{{ row.data2 }}</td>
</tr>
</tbody>在您的按钮函数中
selectAllGrid(){
$scope.checkAll=true;
}发布于 2017-05-30 14:39:43
你可以这样做:
<table>
<tbody>
<tr ng-repeat="row in myObject track by $index" ng-class-even="'alternate-row'">
<td name="checkbox">
<input type="checkbox" ng-model="row.checked" ng-style="row.checkboxStyle" />{{row.checked}}
</td>
<td>{{ row.data }}</td>
</tr>
</tbody>
</table>
<div class="btn-group">
<button type="button" id="selectAll" class="btn btn-default" title="Select All" ng-click="selectAllGrid()">Select All</button>
</div>在你的控制器中:
app.controller('MainCtrl', function($scope) {
$scope.allchecked = false;
$scope.selectAllGrid = function(){
console.log($scope.allchecked);
$scope.allchecked = !$scope.allchecked
for(var i =0; i<$scope.myObject.length; i++) {
$scope.myObject[i].checked = $scope.allchecked ;
}
}
$scope.myObject = [
{"data": "sdfsdf"},
{"data": "asdfassafs"},
{"data": "asesfrsaedfsadfsadsd"}
]
});工作柱塞here
https://stackoverflow.com/questions/44254817
复制相似问题