2013-10-07 8 views
6

Esiste comunque la possibilità di far funzionare ng-switch all'interno di un tavolo? L'esempio di tabella non funziona, ma l'ex esempio funziona perfettamente. Il problema è che ho davvero bisogno dell'esempio della tabella. Sto usando l'angolare 1.07.Angularjs. ng-switch non funziona all'interno di un tavolo

<table> 
    <tbody ng-repeat="item in items"> 

    <tr><td>{{ item.heading }}</td></tr> 

    <tr ng-repeat="row in item.fields" ng-switch on="row.nb"> 

    <div ng-switch-when="01"> 
    <td>{{ row.nb }}</td> 
    </div> 

    </tr> 

    </tbody> 

</table> 

<ul ng-repeat="item in items"> 
    <li ng-repeat="row in item.fields" ng-switch on="row.nb"> 

    <div ng-switch-when="01"> 
    {{ row.nb }} 
    </div> 

    </li> 
</ul> 

risposta

10

è necessario spostare il ng-switch-when al TD altrimenti si ignorano come non valido perché un div non è codice valido all'interno di un tr. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr

Rimuovere il div e modificarla in:

<td ng-switch-when="01">{{ row.nb }}</td> 

Demo: http://plnkr.co/edit/yHkBGekjgGDts8pNtekJ?p=preview

+0

Grazie per la risposta. Il mio esempio è stato semplificato. Nel codice reale ho diversi TD: s. Forse potrei sostituire il TD: s con una nuova tabella - ma suppongo che le celle nelle tabelle non si allineano correttamente ad altre tabelle. Ad ogni modo, sono stato così fortunato che solo un TD cambia a seconda del parametro (row.nb), quindi la tua soluzione funziona bene per me. Molte grazie. – user2856066

+0

Le tabelle possono diventare ingombranti. Potresti considerare l'utilizzo delle griglie (bootstrap) ma tutto dipende dalle tue esigenze. – lucuma

+0

Anche questa è una buona idea. Sto già usando il bootstrap di Twitter, quindi questa è una possibilità. Strano che l'ho considerato più recente e con quella soluzione mi libererò dei numerosi tbodys che si creano nella ng-repeat. Grazie, valuterò entrambe le soluzioni. – user2856066

Problemi correlati