2017-05-25 3 views
1

scheint die gleiche Anforderung zu sein wie AngularJS "Vertical" ng-repeat aber Lösung funktioniert nicht für * ngForVertikale Tabelle mit dynamischen Daten

Ich habe diesen object array, dass ich in eine HTML-Tabelle zu binden versuchen. Das Format ist so etwas wie unten:

[ 
{ 
    "Animal":"Dog", 
    "Country":"France", 
    "Food":"Tofu", 
    "Car":"Nano", 
    "Language":"TypeScript" 
} 
] 

Jetzt können diese einfach in die Standard-HTML-horizontalen Tisch Art und Weise wie diese formatiert werden:

<table> 
    <tr> 
    <th>Animal</th> 
    <th>Country</th> 
    <th>Food</th> 
    <th>Car</th> 
    <th>Language</th> 
    </tr> 
    <tr *ngFor="let data of datas"> 
    <td>{{data.Animal}}</td> 
    <td>{{data.Country}}</td> 
    <td>{{data.Food}}</td> 
    <td>{{data.Car}}</td> 
    <td>{{data.Language}}</td> 
    </tr> 
</table> 

Diese Tabelle würde erstellen wie unter (Bitte ignorieren Sie die Daten in der Tisch, es ist nur eine Idee zu geben.):

[1]: https://i.stack.imgur.com/VG

Aber wie würde ich eine Struktur wie diese mit dynamischen Daten (Art eines vertikalen erstellen Tabelle): enter image description here

+0

Vielleicht Google "Winkel vertikale Tabelle" Ich sehe eine Menge Hits – mplungjan

+0

Mögliche Duplikat [AngularJS "Vertical" ng-Repeat] (https://stackoverflow.com/questions/34308094/angularjs -vertical-ng-repeat) – Avitus

+0

@Avitus schien genau meine Anforderung. Aber nicht mit Angular 2 'ngFor' zu arbeiten. Wirft Fehler. –

Antwort

1

In Komponente:

this.arrayOfKeys = Object.keys(this.datas[0]); 

html:

<table> 
    <tr *ngFor="let key of arrayOfKeys"> 
     <th>{{key}}</th> 
     <td *ngFor="let data of datas"> 
      {{data[key]}} 
     </td> 
    </tr> 
</table> 
+0

Danke mann !!!!! –

+0

Gibt es einen bestimmten Grund für die Verwendung von 'ng-container'? –

+0

Nein, ngFor auf der tr wird das gleiche tun. Ich werde bearbeiten. –

0

Verwenden ng-container wenn Sie Datenstruktur groups[].items[].name

So ähnlich haben, wollen, wenn Sie Zeile hinzufügen

<table> 
    <ng-container *ngFor="let group of groups"> 
     <tr> 
      <td>{{group.name}}</td> 
     </tr> 
     <tr *ngFor="let item of group.items"> 
      <td>{{item.name}}</td> 
     </tr> 
    </ng-container> 
</table> 

Quelle: https://stackoverflow.com/a/44086855/1840185

Verwandte Themen