2016-02-06 31 views
21

ho bisogno di fare un equivalente di questo Angular2:Angular2 annidato ngFor

<?php 
foreach ($somethings as $something) { 
    foreach ($something->children as $child) { 
     echo '<tr>...</tr>'; 
    } 
} 

può questo essere realizzato con ngFor e non l'aggiunta di nuovi elementi tra <table> e <tr>?

+0

uso ng-repeat nel tuo html – danday74

+0

ps si può nido ng-repeat – danday74

+1

ng-ripetere? Lì, non c'è ng-repeat in angular2? Proponi di passare a 1.x angolare? – Okneloper

risposta

16

Ho un campione che potrebbe essere simile a quello che si vuole:

<table id="spreadsheet"> 
    <tr *ngFor="let row of visibleRows"> 
     <td class="row-number-column">{{row.rowIndex}}</td> 
     <td *ngFor="let col of row.columns"> 
      <input data-id="{{col.rowIndex}}-{{col.columnIndex}}" [value]="col.cellValue" (input)="col.cellValue = $event.target.value" (click)="model.selectColumn(col)" (keyup)="navigate($event)" /> 
     </td> 
    </tr> 
</table> 

Io lo uso per il rendering di un foglio di calcolo in cerca di griglia come si vede qui: http://www.syntaxsuccess.com/angular-2-samples/#/demo/spreadsheet

+0

Grazie signore @TGH –

4

Utilizza il modulo di 'modello' di la sintassi ngFor, vista qui. È un po 'più prolisso della semplice versione *ngFor, ma è così che si ottiene il loop senza output html (fino a quando non si intende farlo). Un'eccezione: riceverai comunque commenti HTML all'interno del tuo <table> ma spero che sia ok. Ecco un plunkr di lavoro: http://plnkr.co/edit/KLJFEQlwelPJfNZYVHrO?p=preview

@Component({ 
    selector: 'my-app', 
    providers: [], 
    directives: [], 
    template: ` 
    <table> 
    <template ngFor #something [ngForOf]="somethings" #i="index"> 
     <template ngFor #child [ngForOf]="something.children" #j="index"> 
     <tr>{{child}}</tr> 
     </template> 
    </template> 
    </table> 
    ` 
}) 
export class App { 
    private somethings: string[][] = [ 
    {children: ['foo1', 'bar1', 'baz1']}, 
    {children: ['foo2', 'bar2', 'baz2']}, 
    {children: ['foo3', 'bar3', 'baz3']}, 
    ] 
} 
+0

Non sono sicuro di come Angolare gestisce questo, ma IE rimuove i tag '