3

I have a the following HTML:

<li ng-repeat="test in lists.Tests">
    <label>
        <input type="checkbox" id="cbxAcceptTest" ng-checked="{{test.IsAccepted}}"  ng-click="testSelection($event,{{test}})" />
    </label>
</li>

and the testSelection method as :

$scope.testSelection = function ($event, test) {
    if (test.IsAccepted) {
        alert('accept');
    }
    else {
        alert('reject');
    }

};

I am not able to trigger this method on ngClick, It works on ngChecked, but then I have to use ngModel, which Ive read does not go with ngChecked in the following link.

Community
  • 1
  • 1
SJMan
  • 1,547
  • 2
  • 14
  • 37

3 Answers3

1

In my case I have something like this:

<li ng-repeat="item in items">
    <label>
        <input type="checkbox" ng-model="item.auto" ng-click="onAutoClick(item)" />
    </label>
</li>

In my controller:

$scope.onAutoClick = function(item) {
  if(item.auto){
     // checked (true condition)
  } else  {
     // unchecked ( false condition)
  }

};
Abdel Raoof Olakara
  • 19,223
  • 11
  • 88
  • 133
1

Just remove the curly braces around test when you pass it as a parameter.

cloudberry
  • 379
  • 3
  • 10
1

Please check this Plnkr.

In HTML you need remove your curly braces

  <li ng-repeat="test in lists.Tests">
    <label>
        <input type="checkbox" id="cbxAcceptTest" ng-checked="{{test.IsAccepted}}"  ng-click="testSelection(test)" />
    </label>