2017-12-12 1 views
1

Ich versuche, eine Tabelle aus einem 2-dimensionalen Array von Objekten zu drucken, ein Attribut ‚Text‘ zu halten. Es druckt nur die Tabellenzeilen, die Iteration durch die Felder funktioniert nicht.Wie drucke ich eine Tabelle aus einem 2D Array in Angular 5?

Meine component.html wie folgt aussieht:

<section *ngIf="object"> 
 
    <table> 
 
     <tr *ngFor="let row of array; let even = even; let odd = odd" 
 
      [ngClass]="{ odd: odd, even: even }"> 
 
     <td class="field" *ngFor="let field of array[row]"> 
 
      {{field.text}} 
 
     </td> 
 
     </tr> 
 
    </table> 
 
    </section>

Das Array: Object [] [] korrekt ausgefüllter und ich kann log der 'Text' auf der Konsole Attribute. Das Problem ist: Ich weiß nicht, wie durch die 2. Dimension iterieren (*ngFor="let field of array[row]")

+0

Kleine Randnotiz: Sie müssen nicht gerade/ungerade Klasse Ihren Elemente hinzuzufügen, können Sie Ebene CSS: 'table> tr: nth-of-Typ (ungerade)' – user184994

Antwort

1

array Unter der Annahme ist ein Array von Arrays,

Ihre zweite ngFor sollten Sie *ngFor="let field of row"

kann nicht verwenden array[row] seit row enthält das Array der zweiten Dimension und nicht den Index.

<section *ngIf="object"> 
    <table> 
     <tr *ngFor="let row of array; let even = even; let odd = odd" 
      [ngClass]="{ odd: odd, even: even }"> 
     <td class="field" *ngFor="let field of row"> 
      {{field.text}} 
     </td> 
     </tr> 
    </table> 
    </section> 

Example

Verwandte Themen