Dynamique imbriquée Matériel de menu de l'objet json Angulaire 5

Comment créer des dynamiques imbriquée menu de l'objet json?

J'ai commencé à utiliser Angulaire de la Conception des Matériaux, aujourd'hui, pour la première fois et je suis en train de créer des listes de menus à l'aide de la conception de matériel. Le la documentation est assez simple pour la statique des choses.

Mais j'ai besoin de créer des dynamiques imbriquée menu de l'objet json et je ne peux pas trouver une solution simple à ce n'importe où. Il a juste besoin d'être d'un niveau de profondeur.

objet json(pas fixés dans la pierre):

my_menu = {
    'main1': ['sub1', 'sub2'],
    'main2': ['sub1', 'sub2'],
}

qui donnerait quelque chose comme ça, mais de manière dynamique: résultat escompté exemple à stackblitz

Dynamique imbriquée Matériel de menu de l'objet json Angulaire 5

J'ai essayé avec la construction en cours d'exécution *ngFor comme ça pour le menu principal, puis séparés sur chaque sous-menu, mais il a fini dans les erreurs.

<button mat-button [matMenuTriggerFor]="main_menu">My menu</button>

<mat-menu #main_menu="matMenu">
  <button *ngFor="let main_item of objectKeys(my_menu)" mat-menu-item [matMenuTriggerFor]="main_item">{{ main_item }}</button>
  <button mat-menu-item [matMenuTriggerFor]="main2">main2</button>
</mat-menu>

<mat-menu *ngFor="let sub_menu of objectKeys(my_menu)" #sub_menu="matMenu">
  <button *ngFor="let sub_name of sub_menu" mat-menu-item>{{ sub_name }}</button>
</mat-menu>

Je sais que c'est mal, mais c'est là que ma compréhension de angulaire terminé.

objectKeys retourne toutes les clés de l'objet à l'aide Object.keys qui est chargé à partir du fichier ts.

objectKeys = Object.keys;

PS. Je suis assez nouveau dans Angulaire également

OriginalL'auteur rain01 | 2018-01-08