I created a cascading menu in Angular and it works but I want to be dynamic. See this link for a better understanding of what I mean. I want to make something like a table in Angular Material.
fullMenu = [{
name: "Home",
childs: [{
name: "HomeLevel-1",
childs: [{
name: "Home-level-2"
}]
}]
}, {
name: "about"
},{
name: "register",
childs: [{
name: "registerLevel-1",
childs: [{
name: "registerLevel-2"
}]
}]
}];
<ul>
<ng-template #recursiveList let-fullMenu let-level="level">
<li *ngFor="let item of fullMenu; let i = index">
<button class="btn btn-primary" type="button" data-toggle="collapse" [attr.data-target]="'#foo' + i + level" aria-expanded="false" aria-controls="collapseExample">
{{item.name}}
</button> {{i}}
<ul *ngIf="item.childs && item.childs.length > 0">
<div class="collapse" [attr.id]="'foo' + i +level">
<div class="card card-body">
<ng-container *ngTemplateOutlet="recursiveList; context:{ $implicit: item.childs, level: level + i + fullMenu.length }"></ng-container>
</div>
</div>
</ul>
</li>
</ng-template>
<ng-container *ngTemplateOutlet="recursiveList; context:{ $implicit: fullMenu, level: 0 }"></ng-container>
</ul>
0"> ......
– Dec 31 '19 at 10:40