0

I previously asked a related question:

Checkbox and ng-change. Need to uncheck if condition exists

This is fine for one checkbox but now I have a list:

<tr ng-repeat="part in partstoorder">
    <td>

<input type="checkbox"
    ng-change="change(ordered, $index, part)"
    ng-true-value="1"
    ng-false-value="0"
    ng-model="ordered"
    ng-checked="checkedStatus"
    name="part-ordered"  />
    </td>
</tr>

JS:

$scope.change = function(value, part_index, part) {

    var part_id = part.id,
        vehicle_id = part.vehicle_id,
        ordered_from_val = part.ordered_from;


    if (modal_hidden_event) {
        $scope.checkedStatus = false;
    }

}

How would I go about only unchecking the current checkbox?

Community
  • 1
  • 1
beingalex
  • 2,416
  • 4
  • 32
  • 71

2 Answers2

1

try this:

<tr ng-repeat="part in partstoorder">
  <td>
    <input type="checkbox"
      ng-change="change(ordered, $index, part)"
      ng-true-value="1"
      ng-false-value="0"
      ng-model="part.ordered"
      ng-checked="part.checkedStatus"
      name="part-ordered"  />
  </td>
</tr>

here part is a variable that You can use to access to items in ng-repeat.

E. Abrakov
  • 463
  • 2
  • 6
0

Simply use an array

<tr ng-repeat="part in partstoorder">
<td>
<input type="checkbox"
    ng-change="change(ordered, $index, part)"
    ng-true-value="1"
    ng-false-value="0"
    ng-model="ordered"
    ng-checked="checkedStatus[$index] = true"
    name="part-ordered"  />
    </td>
</tr>

JS

 $scope.checkedStatus = [];
 $scope.change = function(value, part_index, part) {
   var part_id = part.id,
   vehicle_id = part.vehicle_id,
   ordered_from_val = part.ordered_from;
   if (modal_hidden_event) {
     $scope.checkedStatus[part_index] = false;
   }
 }
John
  • 1,489
  • 9
  • 17