У меня есть список массивов с родительским и дочерним уровнями (родительский уровень - дочерний уровень - дочерний уровень 1).
Когда я выбираю любой дочерний уровень, я могу установить флажок выбранного родительского уровня. Когда я снимаю флажок со всех родительских уровней дочернего уровня, флажок не снимается.
Вот код, используемый для поиска флажка на html-странице
<div class="table rts-table-parentChild" *ngFor="let userRole of userRoleActions; let i = index">
<div class="table-cell">
<input type="checkbox" [ngModelOptions]="{standalone: true}" class="setup-checkbox" id="ChekCreate{{userRole.actionName}}" (ngModel)]="userRole.isCreateChecked" (change)="selectParentRole(i,'create')">
</div>
<div style="display:table-row-group;" *ngFor="let item of userRole.userRoleSubActions; let j = index">
<div class="table-cell">
<input type="checkbox" [ngModelOptions]="{standalone: true}" class="setup-checkbox" [(ngModel)]="item.isCreateChecked" (change)="isCreateChecked(i,'create')">
</div>
<div style="clear:both !important;" class="table-row" *ngFor="let subitem of item.userRoleSubActions;let k=index">
<div class="table-cell">
<input type="checkbox" [ngModelOptions]="{standalone: true}" class="setup-checkbox" [(ngModel)]="subitem.isCreateChecked" (change)="isCreateChecked(i,'create')">
</div>
</div>
</div>
</div>
Выше приведен код для генерации html-файла с родительскими и дочерними отношениями.
ниже приведен код для выбора всех функций из родительского и дочернего флажка
selectParentRole(currentIndex, roleType) {
for (var i = 0; i < this.userRoleActions[currentIndex].userRoleSubActions.length; i++) {
if (roleType === 'create') {
this.userRoleActions[currentIndex].userRoleSubActions[i].isCreateChecked = this.userRoleActions[currentIndex].isCreateChecked;
}
for (var j = 0; j < this.userRoleActions[currentIndex].userRoleSubActions[i].userRoleSubActions.length; j++) {
if (roleType === 'create') {
this.userRoleActions[currentIndex].userRoleSubActions[i].userRoleSubActions[j].isCreateChecked = this.userRoleActions[currentIndex].isCreateChecked;
}
}
}
}
isCreateChecked(index, roleType) {
for (var j = 0; j < this.userRoleActions[index].userRoleSubActions.length; j++) {
if (this.userRoleActions[index].userRoleSubActions[j].isCreateChecked && roleType === "create") {
this.userRoleActions[index].isCreateChecked = true; // console.log("isCreateChecked");
break;
}
for (var k = 0; k this.userRoleActions[index].userRoleSubActions[j].userRoleSubActions.length; k++) {
if (this.userRoleActions[index].userRoleSubActions[j].userRoleSubActions[k].isCreateChecked && roleType === "create") {
this.userRoleActions[index].isCreateChecked = true;
this.userRoleActions[index].userRoleSubActions[j].isCreateChecked = true;
break;
}
}
}
}
Я хочу снять родительский флажок при выборе дочернего флажка