Я использовал угловые 7 и ngx-treeview.
Я хочу отключить элемент в компоненте дерева, если какое-либо условие проверено.
У меня проблема с чтением данных json с родительского узла на дочерний узел
У меня есть данные JSON с этим форматом.
[
{
"text": "test 1",
"value": "1",
"nbr": "1",
"children": [
{
"text": "test 1_1",
"value": "1_1",
"nbr": "2",
"children": [
{
"text": "test 1_1_1",
"value": "1_1_1",
"nbr": "1",
"children": []
},
{
"text": "test 1_1_2"",
"value": "1_1_2",
"nbr": "0",
"children": []
},
{
"text": "test 1_1_3"",
"value": "1_1_3",
"nbr": "0",
"children": []
},
{
"text": "test 1_1_4"",
"value": "1_1_4",
"nbr": "0",
"children": []
}
]
},
{
"text": "test 1_2",
"value": "1_2",
"nbr": "0",
"children": []
}
]
},
{
"text": "test 2",
"value": "2",
"nbr": "0",
"children": []
}
]
Я хочу зациклить данные json и отключить элемент, если условие проверено.
Моя проблема в том, как зациклить данные JSON.
Я пытаюсь с этим кодом:
let bookObjects = new Array();
this.testService.query({
}).subscribe((res: HttpResponse<TestEntity[]>) => {
this.temp= res.body;
this.temp.forEach((x) => {
if(x.nbr=='0')
{
x.disabled = true;
}
x["children"].forEach(x => {
if(x.nbr=='0')
{
x.disabled = true;
}
x["children"].forEach(x => {
if(x.nbr=='0')
{
x.disabled = true;
}
})
})
bookObjects.push(new TreeviewItem(x));
});
});
это мой HTML-файл:
<ng-template #itemTemplate let-item="item" let-onCollapseExpand="onCollapseExpand" let-onCheckedChange="onCheckedChange">
<div class="form-inline row-item">
<i *ngIf="item.children" (click)="onCollapseExpand()" aria-hidden="true" class="fa" [class.fa-caret-right]="item.collapsed"
[class.fa-caret-down]="!item.collapsed"></i>
<div class="form-check">
<input type="checkbox" class="form-check-input" [(ngModel)]="item.checked" (ngModelChange)="onCheckedChange()" [disabled]="item.disabled"
[indeterminate]="item.indeterminate" />
<label class="form-check-label" (click)="item.checked = !item.checked; onCheckedChange()">
{{item.text}}
</label>
</div>
</div>
</ng-template>
<div class="row">
<div class="col-6">
<div class="form-group">
<div class="d-inline-block">
<ngx-treeview [items]="items" [itemTemplate]="itemTemplate" (selectedChange)="onSelectedChange($event)">
</ngx-treeview>
</div>
</div>
</div>
</div>