Checkbox in header for angular-ui bootstrap accordion directive

accordion, angularjs, jquery-ui

Solution

<accordion>
  <accordion-group ng-repeat="group in groups" is-open="group.open">
    <accordion-heading>
      <input type="checkbox" ng-checked="group.checked" ng-click="checkboxClick(group, $event)" />
      {{group.title}}
    </accordion-heading>
    {{group.content}}
  </accordion-group>    

And:

$scope.checkboxClick = function(group, $event){
  $event.stopPropagation();
}

Example: Plunker

Problem

I'm still pretty new to angular, so this may be a basic question, but I haven't been able to figure it out yet. How do I put a checkbox (bound to a property of my model) into a header for an angular-ui accordion? I can get the checkbox in there, but the click never seems to get to it, i.e., it never gets "checked". ``` <accordion> <accordion-group ng-repeat="group in groups" is-open="group.open"> <accordion-heading> <input type="checkbox" ng-model="group.checked" ng-click="checkboxClick(group, $event)" /> Title </accordion-heading> {{group.content}} </accordion-group> </accordion> ``` According to this jQueryUI accordion with checkboxes, I can get something like the desired behavior with the standard jquery-ui accordion by calling `e.preventDefault()` on the click event, but that doesn't seem to work with the angular-ui accordion directive. See this plunker here: http://plnkr.co/edit/QMnaXJeMagrTPRjbIZbL?p=preview.

Original source

Related problems