2017-03-06 4 views
0

Meine angular2 Komponente hat eine @Input(): data vom Typ [number,number]. Die Größe des Arrays sollte aus der Eingabe bestimmt werden. Wie kann ich nun den Inhalt dieses Feldes zu einer Tabelle in html binden, das heißt, sollte die Tabelle so etwas wie dieses:Anzeige Array in Angular2 Vorlage

<table> 
    <tr> 
     <td> data[0,0] </td> 
     <td> data[0,1] </td> 
     ... 
    </tr> 
    <tr> 
     <td> data[1,0] </td> 
     <td> data[1,1] </td> 
     ... 
    </tr> 
    ... 
</table> 
+0

Wenn Länge der Anordnung aus der Eingabe bestimmt wird, können Sie geben Daten wie '@Input() -Daten definieren: Zahl [];'. Können Sie die Beispieleingabe für ein leicht verständliches Problem anzeigen? – Jarek

+0

@ Jarek: Es ist ein zweidimensionales Array der Größe (n, m). Jeder Eintrag ist eine Ganzzahl. Mit "die Länge wird von der Eingabe bestimmt" meine ich, dass die Komponente die Größe intrinsisch nicht kennt, nur wenn sie die Daten erhält. – EluciusFTW

+0

Sie haben also nur ein Problem mit den Anzeigedaten, ja? – Jarek

Antwort

1

Sie können dies tun, mit zwei * ngFor-Richtlinien:

<table> 
    <tr *ngFor="let row of data"> 
     <td *ngFor="let value of row">{{value}}</td> 
    </tr> 
</table> 

Arbeits Plunkr

+0

Ich hätte Arrays in js genauer betrachtet. Ich wusste nicht, dass sie als ein Array von Arrays interpretiert werden, d. H. Ein Array von Zeilen enthält das Array von Zellen. Dann ist es offensichtlich, danke. Ich dachte mehr wie eine doppelt indizierte Datenstruktur. – EluciusFTW

1

kurzes Beispiel:

Unser Array:

array = [[1,2],[3,4],[7,7]]; 

Unsere Vorlage:

<table> 
    <tr *ngFor="let rows of array"> 
    <td *ngFor="let col of rows">{{ col }}</td> 
    </tr> 
</table> 
+0

Danke, siehe mein Kommentar zu @Markais Antwort. – EluciusFTW