beingalex
beingalex

Reputation: 2476

Need to uncheck checkbox in list if condition exists

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?

Upvotes: 0

Views: 4541

Answers (2)

John
John

Reputation: 1489

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;
   }
 }

Upvotes: 0

E. Abrakov
E. Abrakov

Reputation: 463

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.

Upvotes: 1

Related Questions