2017-06-22 1 views
1

Je fais face à une petite chose délicate dans la table modèle angulaire2. J'ai la JSON suivante:angular2 affiche la liste json imbriquée

users : 
{ 
     userid : 123, 
     username: 'test', 
     acc : [ 
      { 
       accid: 382746, 
       cyc: [ 
       { 
        cycid: 28734, 
        det: [ 
         { 
          detid: 239876 
         } 
       }, 
       { 
        cycid: 3728, 
        det :[ 
         { 
          detid: 632 
         }, 
         { 
          detid: 2783 
         }  
       }, 
       { 
        cycid: 3729, 
        det :[ 
         { 
          detid: 633 
         }, 
         { 
          detid: 2785 
         }, 
         { 
          detid: 78236 
         } 
        ] 
       } 
     } 
    ] 
} 

Je voudrais afficher dans une liste de table selon la dernière CYC et dernier det du dernier CYC. comme ce qui suit:

--------------------------------------------------------------------- 
|  acc id   |  cyc id   |  det id | 
--------------------------------------------------------------------- 
|  382746   |  3729    |  78236  | 
--------------------------------------------------------------------- 

Toute idée de comment le faire?

+0

pouvez-vous s'il vous plaît décrire quelle est la relation entre les objets et comment pouvons-nous mapper un peu large dans la question –

+1

Les crochets de votre exemple de code ne correspondent pas. Il est difficile d'interpréter la structure de données. Pourriez-vous trouver un petit JSFiddle ou corriger l'extrait de structure de données? – nipuna777

+0

Json a été mis à jour –

Répondre

0

utilisez 3 ngFour comme ci-dessous.

<table *ngFor="let acc of users.acc"> 
    <table *ngFor="let cyc of acc.cyc"> 
     <table> 
      <tr *ngFor="let det of cyc.det"> 
      <td></td>//acc.details 
      <td></td>//cyc.details 
      <td></td>//det.details 
      </tr> 
     </table> 
    </table> 
</table> 
1

Je ne sais pas, cela pourrait-il donner un indice:

<table class="table table-bordered width-150"> 
<tr> 
    <th>accid</th> 
    <th>cycid</th> 
    <th>detid</th> 
</tr> 
<div *ngFor="let user of users; let userIndex = index"> 
    <div *ngFor="let accItem of user.acc ; let accIndex=index"> 
     <div *ngIf="userIndex == 0"> 
      <div *ngFor="let cyc of accItem.cyc ; let cycIndex=index"> 
       <div *ngIf="cycIndex==users[userIndex].acc[accIndex]?.cyc.length-1"> 
        <div *ngFor="let det of cyc.det ; let detIndex=index"> 
         <div *ngIf="detIndex==users[userIndex].acc[accIndex]?.cyc[cycIndex]?.det.length-1"> 
          <tr> 
           <td>{{accItem.accid}}</td> 
           <td>{{cyc.cycid}}</td> 
           <td>{{ det.detid}}</td> 
          </tr> 
         </div> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
</table> 
+0

il donnera non seulement le dernier de cyc et le dernier det. mais il donnera à tous –

+0

oui: vous voulez seulement le dernier? –

+0

En effet, je n'ai besoin que d'une seule ligne acc même acc a plusieurs cyc et cyc a det multiples et seulement le dernier cyc et det doit être affiché –