Ich habe den Code wie dieser
HTMLAngular Ankreuzfelder „Select All“ -Funktion funktioniert nicht
<div class="check_toggle" ng-click="toggleAll(payout)">
select all
<input type="checkbox" aria-label="Art" ng-model="checkall"/>
</div>
<table>
<thead>
<tr>
<th>Week</th>
<th>Release Payment</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in payout">
<td>{{item.value}}</td>
<td>
<div class="checkbox pay_check">
<input aria-label="Art" type="checkbox" ng-model="allCheckBox[$index]" ng-click="selectItem(item._id,selected,payout)">
</div>
</td>
</tr>
</tbody>
Controller
$scope.payout= [
{'_id':1, value:'Option1'},
{'_id':2, value:'Option2'}
];
$scope.toggleAll = function(payout) {
$scope.checkall = !$scope.checkall;
for(var i=0;i<payout.length;i++){
if($scope.checkall===false){
$rootScope.selected=[];
$scope.allCheckBox[i] = $scope.checkall ;
}else{
$rootScope.selected[i]=payout[i]._id;
$scope.allCheckBox[i] =$scope.checkall ;
}
}
}
$scope.selectItem = function(id, list,payout) {
console.log('id',id);
var idx = list.indexOf(id);
if (idx > -1) {
list.splice(idx, 1);
} else {
list.push(id);
}
if(payout.length==$rootScope.selected.length){
$scope.checkall=true;
console.log($scope.checkall);
// $scope.checkall= $scope.checkall;
console.log('All checkboxes selected');
}
else{
$scope.checkall=false;
console.log('Not All checkboxes selected');
}
}
Ich habe getrennte Kontrollkästchen mit ng -repeat, und wählen Sie alle checkbox.First wenn ich sel ect alle einzelnen Auswahlfelder, das checkall-Feld wird automatisch überprüft, wie ich erwartet habe und auch alle markieren auch alle einzelnen Kontrollkästchen wie erwartet, aber das Problem ist, wenn ich Check-Checkbox zuerst und alle einzelnen Elemente als nächstes, wird es nicht funktionieren wie ich es erwartet habe (das checkall-Kontrollkästchen wird nicht aktiviert oder deaktiviert, basierend auf der Auswahl).
Ich habe versucht einige Stapelüberlauf Antworten, aber es ist das gleiche. Könnte mir jemand sagen wie. Bitte
Danke. Ich habe es schon so versucht, es funktioniert in Plunker. Aber nicht in meinem Code. Können Sie bitte überprüfen, was falsch ist in meiner Frage – codelearner