2016-04-02 17 views

risposta

4

Non è possibile inserire div direttamente all'interno di tr, che renderebbe HTML non valido. tr può avere solo td/th/table elemento in esso & al loro interno si potrebbero avere altri elementi HTML.

Si potrebbe modificare leggermente il codice HTML per avere *ngFor oltre tbody & hanno ngIf oltre tr se stesso come di seguito.

<tbody *ngFor="..."> 
    <tr *ngIf="..."> 
    ... 
    </tr> 
    <tr *ngIf="!..."> 
    ... 
    </tr> 
    .. 
</tbody> 
+0

Sarebbe fondamentalmente risolvere il problema ma ti trade off la capacità di base tu vai con te. Se hai un grande tavolo puoi aggiustare la testa e far scorrere semplicemente il corpo. Il tuo tbody avrebbe il ruolo di tr e tr avrebbe il ruolo di un ulteriore wrapper. Se non è necessario scorrere e fissare la testa in alto, questa è una soluzione pragmatica. Il mio riferimento per ciò che ho detto: https://www.w3.org/TR/html401/struct/tables.html#h-11.2.3 – sascha10000

19

Ho trovato un metodo per quello su: https://angular.io/docs/ts/latest/guide/template-syntax.html#!#star-template.

È possibile utilizzare semplicemente il tag <template> e sostituire *ngIf con [ngIf] come questo.

<template [ngIf]="..."> 
    ... 
</template> 
+0

buono ma * ngSe il suo file crea un tag 'template', per default il prefisso delle direttive angolari con * crea un tag modello. quindi entrambi sono '[ngIf] e * ngIf' –

+1

Con' * ngIf' hai un elemento all'interno del template, non lo fai se scrivi il 'template' tu stesso. In determinate circostanze l'elemento extra potrebbe interferire. – Teak

+0

Possiamo inserire il tag 'template' dentro, tag' tr'/'td'? –

Problemi correlati