I have Checkboxes on my page with a 3 to 4 level of hierarchy. When first level is checked then Level 2 Checkboxes appear & on checking Level 2 - Level 3 Checkboxes appear.
When User Unchecks the parent Checkbox all the child checkboxes should be unchecked including radios.
Here is the Scenario.

I have made show hide work by creating a container div for every child & then using ng-if. This only show hides the container. But How do i Uncheck all the child elements checkboxes?
Sample Code :-
<div class="col-sm-12">
<input type="checkbox" ng-model="todo.level1" />
<label>Level 1</label>
</div>
<div class="col-sm-12" ng-show="todo.level1">
<!------- Level 2 ------->
<div class="col-sm-12">
<div class="col-sm-offset-1 col-sm-11" ng-if="todo.level1">
<input type="checkbox" ng-model="todo.c2" />
<label> C2</label>
</div>
<div class="col-sm-12" ng-show="todo.level2">
<div class="col-sm-12" ng-if="todo.level2">
<div class="margin-left-2">
<input type="checkbox" ng-model="todo.level3" />
<label>Level 3 - 1</label>
</div>
</div>
<div class="col-sm-12" ng-if="todo.level4">
<div class="margin-left-3">
<select id="Select1">
<option>Choose</option>
<option>25%</option>
<option>25-50%</option>
<option>50%</option>
</select>
</div>
</div>
<div class="col-sm-12" ng-if="todo.c2">
<div class="margin-left-2">
<input type="checkbox" ng-model="todo.level3" />
<label>Level 3 - 2</label>
</div>
</div>
<div class="col-sm-12" ng-if="todo.level4">
<div class="margin-left-3">
<label>Level 4 - 1</label><br />
<input type="radio" value="Yes" /><label> Yes</label>
<input type="radio" value="No" /><label> No</label>
</div>
</div>
</div>
</div>