I have multiple level of checkboxes in large groups. On clicking 1st level of Checkbox the Second level appears & on clicking 2nd level of checkboxes 3rd level appears.
When 1st level checkbox is unchecked all the inner levels of checkboxes should be unchecked.
I have used ng-if & ng-init to achieve this. But this is giving me problems while saving data.

I have large number of 1st level Checkboxes, so how do i clear or uncheck all the iner level checkboxes & radios in a simple way.
Calling a Method on ng-click & clearing model one by one will be very complicated. What is easy way out for this?
My Code :-
<div ng-repeat="todo in todos" class="col-sm-12">
<div class="col-sm-12">
<input type="checkbox" ng-model="todo.level1" />
<label>Level 1</label>
</div>
<div class="col-sm-12" ng-if="todo.level1">
<div class="col-sm-12">
<div class="col-sm-offset-1 col-sm-11" ng-if="todo.level1">
<input type="checkbox" ng-model="todo.c4" ng-init="todo.c4 = false" />
<label> C4</label>
</div>
<div class="col-sm-12" ng-if="todo.c4">
<div class="col-sm-12" ng-if="todo.c4">
<div class="margin-left-2">
<input type="checkbox" ng-model="todo.c4vert" ng-init="todo.c4vert = false" />
<label> Xyz</label>
</div>
</div>
<div class="col-sm-12" ng-if="todo.c4vert">
<div class="margin-left-3">
<select id="Select3">
<option>Choose</option>
<option>25%</option>
<option>50%</option>
</select>
</div>
</div>
<div class="col-sm-12" ng-if="todo.c4">
<div class="margin-left-2">
<input type="checkbox" ng-model="todo.c4post" ng-init="todo.c4post = false" />
<label> ABC</label>
</div>
</div>
<div class="col-sm-12" ng-if="todo.c4post">
<div class="margin-left-3">
<label>Quest?</label><br />
<input type="radio" value="Yes" ng-model="todo.c4postdisloc" ng-init="todo.c4postdisloc = false" /><label> Yes</label>
<input type="radio" value="No" ng-model="todo.c4postdisloc" ng-init="todo.c4postdisloc = false" /><label> No</label>
</div>
</div>
<div class="col-sm-12" ng-if="todo.c4post">
<div class="margin-left-3">
<label>Quest 2?</label><br />
<input type="radio" value="Yes" ng-model="todo.c4postspinal" ng-init="todo.c4postspinal = false" /><label> Yes</label>
<input type="radio" value="No" ng-model="todo.c4postspinal" ng-init="todo.c4postspinal = false" /><label> No</label>
</div>
</div>
<div class="col-sm-12" ng-if="todo.c4">
<div class="margin-left-2">
<input type="checkbox" ng-model="todo.c4trans" ng-init="todo.c4trans = false" />
<label> LMN</label>
</div>
</div>
<div class="col-sm-12" ng-if="todo.c4trans">
<div class="margin-left-3">
<label>TYU </label>
<br />
<input type="radio" value="Yes" ng-model="todo.c4transdisplace" ng-init="todo.c4transdisplace = false" /><label> Yes</label>
<input type="radio" value="No" ng-model="todo.c4transdisplace" ng-init="todo.c4transdisplace = false" /><label> No</label>
</div>
</div>
</div>
</div>
</div>
</div>
Using ng-init gives me a problem, because values of checkboxes are loaded from db, ng-init makes all the values false.