2017-12-06 4 views
-4

Der Code unten in einer Ansicht ist von main-category.componentgenerieren dynamische Tabelle mit div basierend auf ngFor Schleife

<div> 
    <div *ngFor="let category of categories;"> 
     <app-subcategory> 
     [name]="category.name"> 
     </app-subcategory> 
    </div> 
</div> 

ich eine Tabelle mit vier Spalten erzeugen möchte und x Zeilen die Anzahl der Elemente in categories abhängig. Jede Zelle enthält die Komponente app-subcategory.

Ich sehe nicht den richtigen Weg, dies zu tun. Hast du eine Idee?

Danke,

+6

Durch 7k rep wird erwartet, dass Sie den Unterschied zwischen einer Anforderung und einer Frage kennen würden. Was hast du versucht * und was genau ist das Problem damit? – jonrsharpe

+0

Sie müssen mehr Informationen geben. Wo ist der Tisch? Wenn es sich innerhalb der div innerhalb der app-Unterkategorie befindet, erstellen Sie mehrere Tabellen. Was hast du bisher versucht? –

+0

@VinodBhavnani Ich habe die Frage aktualisiert. Der Code ist in der Ansicht einer Komponente 'Hauptkategorie.Komponente' Ich möchte x mal eine Unterkomponente 'App-Unterkategorie' basierend auf der Anzahl der Elemente in Kategorien, aber mit 4 Spalten pro Zeile anzeigen. –

Antwort

0
@Pipe({ name: columns }) 
export class ColumnsPipe implements PipeTransform { 
    transform(data, numColumns) { 
    if(!data || data.length == 0) { 
     return data; 
    } 

    var i,j,temparray,chunk = 10; 
    result = []; 
    for (i=0,j=data.length; i<j; i+=chunk) { 
     result.pop(array.slice(i,i+chunk)); 
    } 
    return result; 
    } 
} 

siehe auch https://stackoverflow.com/a/8495740/217408

<div> 
    <div *ngFor="let row of categories | columns:4"> 
    <div *ngFor="let category of row"> 
     <app-subcategory> 
     [name]="category.name"> 
     </app-subcategory> 
    </div> 
    </div> 
</div> 

Sie könnten die divs in <tr> und <td> um real Zeilen und Spalten ändern möchten.

Verwandte Themen